Exemple #1
0
    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)
Exemple #3
0
    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)
Exemple #5
0
    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))
Exemple #8
0
    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)
Exemple #11
0
    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)
Exemple #12
0
    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://([^/]+)/(.+)')
Exemple #13
0
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)
Exemple #14
0
def get_auth():
    ak = g.cfg.aliyun_ak
    sk = g.cfg.aliyun_sk
    return Auth(ak, sk)
Exemple #15
0
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!')
Exemple #16
0
 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)
Exemple #18
0
 def _auth(self):
     if not self.auth:
         self.auth = Auth(self.id, self.secret)
Exemple #19
0
 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)
Exemple #20
0
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.')