def __init__(self, is_read=False): self.access_key_id = _get_config('ALIYUN_ACCESS_KEY') self.access_key_secret = _get_config('ALIYUN_ACCESS_SECRET') self.end_point = _normalize_endpoint( _get_config('ALIYUN_OSS_ENDPOINT').strip()) self.bucket_name = _get_config('ALIYUN_OSS_BUCKET') self.cdn_host = _get_config('ALIYUN_OSS_CDN_NAME') self.aliyun_bucket_create = _get_config('ALIYUN_BUCKET_CREATE', False) self.bucket_acl_type = _get_config('ALIYUN_BUCKET_ACL_TYPE', 'private') self.is_read = is_read # 上传文件是否公共读 self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) try: if self.bucket_name not in self._list_bucket(self.service): if self.aliyun_bucket_create: # 创建bucket self.bucket = self._create_bucket(self.auth) raise FileExistsError(f'{self.bucket_name} is no exitis!') else: self.bucket = self._get_bucket(self.auth) except AccessDenied: # 当启用了RAM访问策略,是不允许list和create bucket的 self.bucket = self._get_bucket(self.auth)
def __init__(self, access_key_id=None, access_key_secret=None, end_point=None, bucket_name=None, expire_time=None): self.access_key_id = access_key_id if access_key_id else _get_config( 'OSS_ACCESS_KEY_ID') self.access_key_secret = access_key_secret if access_key_secret else _get_config( 'OSS_ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( end_point if end_point else _get_config('OSS_ENDPOINT')) self.bucket_name = bucket_name if bucket_name else _get_config( 'OSS_BUCKET_NAME') self.expire_time = expire_time if expire_time else int( _get_config('OSS_EXPIRE_TIME', default=60 * 60 * 24 * 30)) self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) self.bucket = Bucket(self.auth, self.end_point, self.bucket_name) # try to get bucket acl to check bucket exist or not try: self.bucket_acl = self.bucket.get_bucket_acl().acl except oss2.exceptions.NoSuchBucket: raise SuspiciousOperation("Bucket '%s' does not exist." % self.bucket_name)
def __init__(self): self.access_key_id = self._get_config('ACCESS_KEY_ID') self.access_key_secret = self._get_config('ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( self._get_config('END_POINT').strip()) self.bucket_name = self._get_config('BUCKET_NAME') self.cname = self._get_config('ALIYUN_OSS_CNAME') try: self.is_https = self._get_config('ALIYUN_OSS_HTTPS') except ImproperlyConfigured: self.is_https = False self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) try: if self.bucket_name not in self._list_bucket(self.service): # create bucket if not exists self.bucket = self._create_bucket(self.auth) else: # change bucket acl if not consists self.bucket = self._check_bucket_acl( self._get_bucket(self.auth)) except AccessDenied: # 当启用了RAM访问策略,是不允许list和create bucket的 self.bucket = self._get_bucket(self.auth)
def __init__(self): access_key_id = os.environ['OSS_ACCESS_KEY_ID'] access_key_secret = os.environ['OSS_ACCESS_KEY_SECRET'] self.endpoint = os.environ.get('OSS_ENDPOINT', 'https://oss-cn-shanghai.aliyuncs.com') self.auth = Auth(access_key_id, access_key_secret) self.bucket_name = os.environ.get('OSS_BUCKET', 'seafile-downloads') self.bucket = Bucket(self.auth, self.endpoint, self.bucket_name)
def __init__(self): self.access_key_id = self._get_config('ACCESS_KEY_ID') self.access_key_secret = self._get_config('ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( self._get_config('END_POINT').strip()) self.bucket_name = self._get_config('BUCKET_NAME') self.cname = self._get_config('ALIYUN_OSS_CNAME') self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) self.bucket = self._get_bucket(self.auth) self.bucket = self._get_bucket(self.auth)
def __init__(self): self.access_key_id = get_config('OSS2_ACCESS_KEY_ID') self.access_key_secret = get_config('OSS2_ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( get_config('OSS2_END_POINT').strip()) self.bucket_name = get_config('OSS2_BUCKET_NAME') self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) if self.bucket_name not in self._list_bucket(self.service): self.bucket = self._create_bucket(self.auth) else: self.bucket = self._check_bucket_acl(self._get_bucket(self.auth))
def __init__(self): self.access_key_id = self._get_config('ACCESS_KEY_ID') self.access_key_secret = self._get_config('ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint(self._get_config('END_POINT').strip()) self.bucket_name = self._get_config('BUCKET_NAME') self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) if self.bucket_name not in self._list_bucket(self.service): # create bucket if not exists self.bucket = self._create_bucket(self.auth) else: # change bucket acl if not consists self.bucket = self._check_bucket_acl(self._get_bucket(self.auth))
def bucket(self): if self.connected: return self._bucket else: self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) self._bucket = Bucket(self.auth, self.end_point, self.bucket_name) # try to get bucket acl to check bucket exist or not try: self._bucket.get_bucket_acl().acl except oss2.exceptions.NoSuchBucket: raise SuspiciousOperation("Bucket '%s' does not exist." % self.bucket_name) self.connected = True return self._bucket
def __init__(self): self.access_key_id = self._get_config('OSS_ACCESS_KEY_ID') self.access_key_secret = self._get_config('OSS_ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint(self._get_config('OSS_ENDPOINT')) self.bucket_name = self._get_config('OSS_BUCKET_NAME') self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) self.bucket = Bucket(self.auth, self.end_point, self.bucket_name) # try to get bucket acl to check bucket exist or not try: self.bucket.get_bucket_acl().acl except oss2.exceptions.NoSuchBucket: raise SuspiciousOperation("Bucket '%s' does not exist." % self.bucket_name)
def __init__(self, access_key_id=None, access_key_secret=None, end_point=None, bucket_name=None): self.access_key_id = access_key_id if access_key_id else _get_config( 'OSS_ACCESS_KEY_ID') self.access_key_secret = access_key_secret if access_key_secret else _get_config( 'OSS_ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( end_point if end_point else _get_config('OSS_ENDPOINT')) self.bucket_name = bucket_name if bucket_name else _get_config( 'OSS_BUCKET_NAME') sts_token = getattr(settings, 'ALIYUN_STS_TOKEN', None) # 这里表示如果有sts_token,需要使用stsauth进行鉴权 if sts_token: self.auth = StsAuth(self.access_key_id, self.access_key_secret, sts_token) else: self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) use_oss_internal = getattr(settings, 'OSS_USE_INTERNAL', None) # 这里表示,如果是阿里云的内网机器,默认走内网的end_point,否则使用外网的end_point # 使用内网end_point,速度快,不收费 if use_oss_internal: self.end_point_internal = _normalize_endpoint( end_point if end_point else _get_config('OSS_ENDPOINT_INTERNAL' )) self.bucket = Bucket(self.auth, self.end_point_internal, self.bucket_name) else: self.bucket = Bucket(self.auth, self.end_point, self.bucket_name) self.bucket_public = Bucket(self.auth, self.end_point, self.bucket_name) # try to get bucket acl to check bucket exist or not try: self.bucket.get_bucket_acl().acl except oss2.exceptions.NoSuchBucket: raise SuspiciousOperation("Bucket '%s' does not exist." % self.bucket_name)
def __init__(self, access_key_id=None, access_key_secret=None, end_point=None, bucket_name=None): self.access_key_id = access_key_id if access_key_id else _get_config( 'OSS_ACCESS_KEY_ID') self.access_key_secret = access_key_secret if access_key_secret \ else _get_config( 'OSS_ACCESS_KEY_SECRET') self.end_point = _normalize_endpoint( end_point if end_point else _get_config('OSS_ENDPOINT')) self.bucket_name = bucket_name if bucket_name else _get_config( 'OSS_BUCKET_NAME') self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point) self.bucket = Bucket(self.auth, self.end_point, self.bucket_name)
def __init__(self, access_key_id: str, access_key_secret: str, hosts: Union[str, List[str]], buckets: Union[str, List[str]]): from oss2 import Auth, Bucket, ObjectIterator super().__init__() self.ObjectIterator = ObjectIterator self.auth = Auth(access_key_id, access_key_secret) if isinstance(buckets, str): buckets = [buckets] if isinstance(hosts, str): hosts = [hosts for i in range(len(buckets))] else: assert len(hosts) == len(buckets), 'number of hosts and number of buckets should be the same' self.buckets = { bucket_name: Bucket(self.auth, host, bucket_name) for host, bucket_name in zip(hosts, buckets) } self.oss_pattern = re.compile(r'oss://([^/]+)/(.+)')
def upload(filename, key): total_size = os.path.getsize(filename) part_size = determine_part_size(total_size, preferred_size=100 * 1024) END_POINT = 'oss-cn-shanghai.aliyuncs.com' AUTH = Auth('LTAIStvC4wpBWRVG', 'BNXtvOz82JjzlSLjPBdQJyEUpXi4PD') BUCKET_NAME = "yunbeifeng" bucket = Bucket(AUTH, END_POINT, bucket_name=BUCKET_NAME) upload_id = bucket.init_multipart_upload(key).upload_id parts = [] with open(filename, 'rb') as fileobj: part_number = 1 offset = 0 while offset < total_size: num_to_upload = min(part_size, total_size - offset) result = bucket.upload_part( key, upload_id, part_number, SizedFileAdapter(fileobj, num_to_upload)) parts.append(PartInfo(part_number, result.etag)) offset += num_to_upload part_number += 1 bucket.complete_multipart_upload(key, upload_id, parts)
def get_auth(): ak = g.cfg.aliyun_ak sk = g.cfg.aliyun_sk return Auth(ak, sk)
import os import json from oss2 import Auth, Bucket, ObjectIterator with open('package.json') as f: package = json.loads(f.read()) Project = package['name'] Deploy = package['deploy']['prod'] auth = Auth(Deploy['accessKeyId'], Deploy['accessKeySecret']) bucket = Bucket(auth, Deploy['endpoint'], Deploy['bucket']) for obj in ObjectIterator(bucket): bucket.delete_object(obj.key) print('Delete <' + obj.key + '> Success') print('Clear OSS OK!') for root, _, files in os.walk('dist/' + Project): for file in files: local = os.path.join(root, file).replace('\\', '/') key = local.replace('dist/' + Project + '/', '') bucket.put_object_from_file(key, local) print('Send <' + key + '> Success') print('Sync OSS OK!')
def __init__(self, bucket: dict): self.auth = Auth(access_key_id=settings.access_key_id, access_key_secret=settings.access_key_secret) self.bucket = self._init_bucket(bucket)
def __init__(self, access_key_id: str, access_key_secret: str, endpoint: str, bucket_name: str): self.access_key_id = access_key_id self.access_key_secret = access_key_secret self.auth = Auth(access_key_id, access_key_secret) self.bucket = Bucket(self.auth, endpoint, bucket_name)
def _auth(self): if not self.auth: self.auth = Auth(self.id, self.secret)
def __init__(self, access_key_id, access_key_secret, end_point): self.access_key_id = access_key_id self.access_key_secret = access_key_secret self.end_point = end_point self.auth = Auth(self.access_key_id, self.access_key_secret) self.service = Service(self.auth, self.end_point)
from uuid import uuid4 from datetime import datetime from oss2 import Auth, Bucket from tornado.options import options __auth = Auth(options.oss_access_key_id, options.oss_access_key_secret) __bucket = Bucket(__auth, 'http://{0}'.format(options.oss_endpoint), options.oss_bucket_name) def upload_oss(contents, name_or_extension): for i in range(3): if name_or_extension.find('.') >= 0: name = name_or_extension else: name = '{0}/{1}.{2}'.format(datetime.now().year, str(uuid4()).replace('-', ''), name_or_extension.lower()) if __bucket.object_exists(name): continue __bucket.put_object(name, contents) is_image = name_or_extension in options.upload_image_accept_formats return 'http://{0}.{1}/{2}'.format( options.oss_bucket_name, options.oss_img_endpoint if is_image else options.oss_endpoint, name) raise Exception('Failed to upload to OSS due to duplicate object name.')