python调用阿里云OSS对象存储
1)安装SDK
import oss2
print(oss2.__version__)
如果能返回SDK版号,则安装成功
2)配置访问凭证
import oss2
from project1 import settings
#以下参数在阿里云账号中可以查到
auth=oss2.Auth(settings.ACCESS_KEY_ID, settings.ACCESS_KEY_SECRET)
endpoint=settings.ENDPOINT
region=settings.REGION
3)常用功能封装
class oss(object):# 阿里云对象存储def __init__(self,bucket):"""功能:创建桶对像"""self.auth = oss2.Auth(settings.ACCESS_KEY_ID, settings.ACCESS_KEY_SECRET)self.endpoint = settings.ENDPOINTself.region = settings.REGIONself.bucket=bucketself.service=oss2.Service(self.auth,self.endpoint)try:self.bucket_object = oss2.Bucket(self.auth, self.endpoint, self.bucket, region=self.region)except:passdef bucket_exists(self,bucket):"""功能:判断桶是否已被自己创建:param bucket:桶名return:存在则返回True,否则返回False及报错信息"""try:self.bucket_object.get_bucket_info()return Trueexcept oss2.exceptions.ServerError as e:print('ServerError',e.message)return e.messageexcept oss2.exceptions.ClientError as e:print('ClientError',e.message)return e.messageexcept BaseException as e:print(e)return edef create_bucket(self,bucket):"""功能:创建桶:param bucket:桶名:return:创建成功返回True,不成功返回错误信息"""#自定义桶的参数bucketConfig = oss2.models.BucketCreateConfig(oss2.BUCKET_STORAGE_CLASS_STANDARD,oss2.BUCKET_DATA_REDUNDANCY_TYPE_ZRS)try:#如果桶名已被自己创建过,则抛出错误,如果没有则尝试创建桶if self.bucket_exists(bucket)==True:raise Exception('%s already exists with yourself!' %(bucket))self.bucket_object.create_bucket(oss2.BUCKET_ACL_PUBLIC_READ, bucketConfig)print(f"%s is available and created." %(bucket))return Trueexcept oss2.exceptions.ServerError as e:print('ServerError',e