oss 常用语句
# -*- coding: UTF-8 -*- ''' @Project :03-crawler @File :oss.py @Author :yucaifu @Date :2024/3/26 16:18 @Description : ''' # https://help.aliyun.com/zh/oss/developer-reference/simple-upload-1?spm=a2c4g.11186623.0.0.17275a05FGcsYG import oss2 import requests from yscredit_tools.config import OSS_KEY_ID, OSS_KEY_SECRET, endpoint class DomeOSS(object): def __init__(self): self.oss = {"oss_bucket_name": 'ys-customer-output', "oss_file_path": 'getui'} self.bucket = oss2.Bucket(oss2.Auth(OSS_KEY_ID, OSS_KEY_SECRET), endpoint, self.oss["oss_bucket_name"]) def bucket_state(self): # 判断bucket是否存在 try: self.bucket.get_bucket_info() return True except oss2.exceptions.NoSuchBucket: return False def object_state(self, oss_name): # 判断文件是否存在 exist = self.bucket.object_exists('{}/{}'.format(self.oss["oss_file_path"], oss_name)) if exist: print("文件存在", exist) else: print("文件不存在", exist) return exist def uplode_local_file(self, oss_name, file_name): # 上传本地文件 if not self.object_state(oss_name): result = self.bucket.put_object_from_file('{}/{}'.format(self.oss["oss_file_path"], oss_name), file_name) print('上传状态码: {}'.format(result.status)) def upload_requests_file(self, url, oss_name): if not self.object_state(oss_name): input = requests.get(url) result = self.bucket.put_object('{}/{}'.format(self.oss["oss_file_path"], oss_name), input) print('上传状态码: {}'.format(result.status)) def upload_append_file(self, oss_name, file_name): # 追加上传 # result = self.bucket.append_object('{}/{}'.format(self.oss["oss_file_path"], oss_name), 0, file_name) # 首次上传 result = self.bucket.head_object('{}/{}'.format(self.oss["oss_file_path"], oss_name)) result = self.bucket.append_object('{}/{}'.format(self.oss["oss_file_path"], oss_name), result.content_length, file_name) # 非首次上传 print('上传状态码: {}'.format(result.status)) def download_file_locat(self, oss_name, file_name): result = self.bucket.get_object_to_file('{}/{}'.format(self.oss["oss_file_path"], oss_name), file_name) print('下载状态码: {}'.format(result.status)) if __name__ == '__main__': oss = DomeOSS() # oss.bucket_state() # oss.object_state() # oss.uplode_local_file("政策-浙江政务服务网_test.xlsx", "C:\\Users\\Ad\\Desktop\\政策-浙江政务服务网_test.xlsx") # oss.download_file_locat("政策-浙江政务服务网_test.xlsx", "C:\\Users\\Ad\\Desktop\\政策-浙江政务服务网1_test.xlsx") oss.upload_append_file("政策-浙江政务服务网_test.xlsx", "C:\\Users\\Ad\\Desktop\\政策-浙江政务服务网_test.xlsx")