six_001
This commit is contained in:
+129
@@ -0,0 +1,129 @@
|
||||
# 预先定义共享的 CosConfig 实例 需要安装的包为 pip install cos-python-sdk-v5
|
||||
import os
|
||||
|
||||
import django
|
||||
|
||||
from sixGuoDjango.settings import BASE_DIR
|
||||
|
||||
os.environ.setdefault(key="DJANGO_SETTINGS_MODULE", value=f"{BASE_DIR.name}.settings")
|
||||
django.setup()
|
||||
|
||||
import io
|
||||
from pathlib import Path
|
||||
|
||||
import jmespath
|
||||
import pydash
|
||||
from qcloud_cos import CosConfig, CosS3Client
|
||||
|
||||
default_config = CosS3Client(
|
||||
CosConfig(
|
||||
Region="ap-nanjing", SecretId="AKID5FE1e4SjPvFLvLNEvRm8KJ5h86sRXR9e",
|
||||
SecretKey="NWTFoDUaWHvOhrriMo4FG7pOmxwxpY7V", Token=None, Scheme="https", Domain="hudie.xiao.band", ),
|
||||
)
|
||||
|
||||
|
||||
class oss上传腾讯云图片:
|
||||
"""
|
||||
from qcloud_cos import CosConfig
|
||||
from qcloud_cos import CosS3Client
|
||||
"""
|
||||
# key: str
|
||||
# Bucket: str = "sixgou-1320557642" # 腾讯云配置(元宝)
|
||||
Bucket: str = "six-1407732583" # 蝴蝶云配置
|
||||
|
||||
client: CosS3Client = default_config
|
||||
|
||||
@classmethod
|
||||
def 上传图片(cls, key: str, file, ):
|
||||
"""
|
||||
:param key: 目录名称
|
||||
:param file: 文件的bytes类型文件
|
||||
"""
|
||||
response = cls.client.upload_file_from_buffer(Bucket=cls.Bucket, Key=key,
|
||||
Body=file, ) # Body: 文件的 bytes 类型数据 必须要是一个可以调用read()方法的对象
|
||||
data = cls.批量查询图片链接(Key=key)
|
||||
src = pydash.get(obj=data, path="src")
|
||||
# print( src )
|
||||
return src
|
||||
|
||||
@classmethod
|
||||
def update本地图片文件(cls, key: str, filename: str, path_name: Path):
|
||||
"""
|
||||
:return:
|
||||
"""
|
||||
Key = f"six/{key}"
|
||||
response = cls.client.upload_file(
|
||||
Bucket=cls.Bucket, # Bucket: 指定存储桶的名称,这里是 "six-1320557642"
|
||||
Key=Key, # Key: 指定文件在存储桶中的路径和名称,这里是 'six/img.jpg'
|
||||
LocalFilePath=path_name, # LocalFilePath: 指定本地要上传的文件路径,这里是 "img.jpg"
|
||||
EnableMD5=False, # EnableMD5: 是否启用 MD5 校验,False 表示不启用
|
||||
progress_callback=None, # progress_callback: 上传进度回调函数,None 表示不使用回调函数
|
||||
)
|
||||
cls.批量查询图片链接(Key=Key)
|
||||
|
||||
@classmethod
|
||||
def 批量查询图片链接(cls, Key):
|
||||
"""
|
||||
:return:
|
||||
"""
|
||||
url = cls.client.get_object_url(Bucket=cls.Bucket, Key=Key, )
|
||||
data = {"type": "image", "src": url, }
|
||||
return data
|
||||
|
||||
@classmethod
|
||||
def 处理用户头像(cls, content: bytes, name: str):
|
||||
""""""
|
||||
image = io.BytesIO(content)
|
||||
Key = f"six/app应用/用户头像/{name}.png"
|
||||
print(Key)
|
||||
response = cls.client.upload_file_from_buffer(Bucket=cls.Bucket, Key=Key,
|
||||
Body=image, ) # Body: 文件的 bytes 类型数据 必须要是一个可以调用read()方法的对象
|
||||
img_response = cls.批量查询图片链接(Key=Key)
|
||||
src = jmespath.search(data=img_response, expression="src", )
|
||||
return src
|
||||
|
||||
@classmethod
|
||||
def 删除图片(cls):
|
||||
data = cls.client.delete_object(Bucket=cls.Bucket, Key="六果项目/app/加.png")
|
||||
print(data)
|
||||
|
||||
@classmethod
|
||||
def xiaozizi(cls):
|
||||
data = cls.client.delete_object(Bucket=cls.Bucket, Key="zizi/")
|
||||
print(data)
|
||||
|
||||
@classmethod
|
||||
def 删除目录(cls):
|
||||
pass
|
||||
data_img_list = cls.client.list_objects(Bucket=cls.Bucket, Prefix="zizi", )
|
||||
# 从icon这个目录中, 获取所有的 子元素(图片) 信息
|
||||
Contents = jmespath.search(data=data_img_list, expression="Contents")
|
||||
# 取出所有的图片 信息
|
||||
for img in Contents:
|
||||
# 循环, 操作
|
||||
Key = jmespath.search(data=img, expression="Key")
|
||||
print(Key)
|
||||
# 删除
|
||||
res = cls.client.delete_object(Bucket=cls.Bucket, Key=Key)
|
||||
print(res)
|
||||
|
||||
@classmethod
|
||||
def 查询所有的图片(cls):
|
||||
pass
|
||||
data = cls.client.list_objects(Bucket=cls.Bucket, Prefix="元宝零售", )
|
||||
print(data)
|
||||
Contents = jmespath.search(data=data, expression="Contents")
|
||||
for img in Contents:
|
||||
Key = jmespath.search(data=img, expression="Key")
|
||||
print(Key)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
pass
|
||||
fileImg = Path("../django_static_directory/media/yanhua.jpg").resolve()
|
||||
print(fileImg)
|
||||
print(fileImg.name)
|
||||
# default_storage.save(name=fileImg.name, content=fileImg.open(mode="rb"))
|
||||
srcc = oss上传腾讯云图片.上传图片(key=f"/烟花项目/{fileImg.name}", file=fileImg.open(mode="rb"))
|
||||
print(srcc)
|
||||
# oss上传腾讯云图片.删除图片()
|
||||
Reference in New Issue
Block a user