# 定义oss类
import requests
import oss2
class UPLOAD_FILE():
def __init__(self, subfilename, key="******", password="******"):
auth = oss2.Auth(key, password) # 初始化
self.bucket = oss2.Bucket(auth, "url", "******")
self.subfilename = subfilename # oss 路径# oss 路径
print(self.subfilename)
def upload_file(self, path_list=None, path=None, type='content', content_file=None, content_name=None):
if path_list:
list_file = os.listdir(path_list)
for file in list_file:
local_file = path_list + "\\" + "{}".format(file)
osspath = self.subfilename + '/' + file
print(osspath)
self.up_file(osspath, local_file)
elif path:
osspath = self.subfilename + '/' + path.split('/')[-1]
local_file = path
self.up_file(osspath, local_file)
return osspath
elif type == 'content':
osspath = self.subfilename + '/' + content_name
exist = self.bucket.object_exists(osspath)
if exist:
print("oss have files with the same name, ignore oss upload")
return osspath
else:
self.bucket.put_object(osspath, content_file)
print(" {} 上传成功".format(osspath))
return osspath
else:
print("未指定路径")
def up_file(self, osspath, local_file):
# 先检测oss上是否有该文件
exist = self.bucket.object_exists(osspath)
if exist:
print("oss have files with the same name, ignore oss upload")
else:
# 上传文件
with open(local_file, "rb") as fileobj:
result1 = self.bucket.put_object(osspath, fileobj)
print("{} 上传成功".format(osspath))
if int(result1.status) != 200:
print("oss upload faild %s" % osspath)
#下载数据,操作oss类
def oss2_data(oss_class, datasurl, name):
if datasurl:
try:
print(datasurl)
res = requests.get(datasurl, timeout=5, verify=False)
content_name = name
content_file = res.content
osspath = oss_class.upload_file(type='content', content_name=content_name, content_file=content_file)
return osspath
except Exception as e:
print(e)
return None
使用的时候
upload_class = UPLOAD_FILE(subfilename=“******”) # 初始化oss,创建目录
upload_class.up_file(文件名, 本地文件的路径)
该代码定义了一个名为UPLOAD_FILE的类,用于处理OSS(对象存储服务)的文件上传和下载。类中包含初始化方法,用于设置认证信息和bucket。upload_file方法支持上传本地文件或目录,同时检查OSS上是否存在同名文件。此外,还提供了一个oss2_data函数用于从URL下载数据并上传到OSS。


被折叠的 条评论
为什么被折叠?



