Esempio n. 1
0
 def test_bucket_iterator(self):
     service = oss2.Service(oss2.Auth(OSS_ID, OSS_SECRET), OSS_ENDPOINT)
     self.assertTrue(
         OSS_BUCKET in (b.name
                        for b in oss2.BucketIterator(service, max_keys=2)))
     self.assertTrue(OSS_BUCKET in list(
         b.name for b in oss2.BucketIterator(service, max_keys=2)))
Esempio n. 2
0
def showBucket():
    print("**********   获取bucket信息  *******")
    service = oss2.Service(oss2.Auth(access_key_id, access_key_secret),
                           endpoint)
    print("*****************************")
    print("     现有bucket有:      ")
    print('\n'.join(info.name for info in oss2.BucketIterator(service)))
    buckets = oss2.BucketIterator(service)
    print("*****************************")
Esempio n. 3
0
def oss(ak, sk, region):
    id_list = []
    auth = oss2.Auth(ak, sk)
    service = oss2.Service(auth, 'http://oss-cn-hangzhou.aliyuncs.com')
    for b in oss2.BucketIterator(service):
        id_list.append({"l": "", "d": b.name})
    return id_list
Esempio n. 4
0
 def oss_info(self) -> GaugeMetricFamily:
     auth = oss2.Auth(self.ak, self.secret)
     service = oss2.Service(
         auth, 'http://oss-{resion_id}.aliyuncs.com'.format(
             resion_id=self.region_id))
     nested_handler = None
     gauge = None
     label_keys = None
     for instance in oss2.BucketIterator(service):
         bucket = oss2.Bucket(auth, 'http://oss-cn-beijing.aliyuncs.com',
                              instance.name)
         bucket_info = bucket.get_bucket_info()
         instance_dict = {
             'name': bucket_info.name,
             'storage_class': bucket_info.storage_class,
             'creation_date': bucket_info.creation_date,
             'intranet_endpoint': bucket_info.intranet_endpoint,
             'extranet_endpoint': bucket_info.extranet_endpoint,
             'owner': bucket_info.owner.id,
             'grant': bucket_info.acl.grant,
             'data_redundancy_type': bucket_info.data_redundancy_type,
         }
         if gauge == None:
             label_keys = self.label_keys(instance_dict, nested_handler)
             gauge = GaugeMetricFamily('aliyun_meta_oss_info',
                                       '',
                                       labels=label_keys)
         gauge.add_metric(labels=self.label_values(instance_dict,
                                                   label_keys,
                                                   nested_handler),
                          value=1.0)
     return gauge
 def selectbucketlist(self):
     """查询bucket列表"""
     buckets_list = []
     for i in oss2.BucketIterator(self.service):
         buckets_list.append(i.name)
     #return buckets_list
     print buckets_list
Esempio n. 6
0
def createBucket():
    """ 创建bucket """
    auth = oss2.Auth(accessKeyId, accessKeySecret)
    service = oss2.Service(auth, endpoint)
    print[b.name for b in oss2.BucketIterator(service)]
    bucket = oss2.Bucket(auth, endpoint, bucket_name)
    bucket.create_bucket(oss2.models.BUCKET_ACL_PRIVATE)
    return bucket
Esempio n. 7
0
 def showBucket(self):
     print("**********   获取bucket信息  *******")
     service = oss2.Service(
         oss2.Auth(self.access_key_id, self.access_key_secret),
         self.endpoint)
     print("*****************************")
     print("     现有bucket有:      ")
     print('\n'.join(info.name for info in oss2.BucketIterator(service)))
     print("*****************************")
Esempio n. 8
0
 def list_buckets(self):
     r = None
     e = None
     try:
         service = oss2.Service(self._auth, self.endpoint)
         # r = oss2.BucketIterator(service)
         r = [b.name for b in oss2.BucketIterator(service)]
     except oss2.exceptions.ServerError as err:
         e = json.loads(str(err).replace("'", '"'))
     log.debug(r or e)
     return r, e
Esempio n. 9
0
 def get_oss_list(self):
     error_dict = {}
     try:
         self.oss_list_obj = [b for b in oss2.BucketIterator(self.service)]
         self.oss_list = []
         for i in self.oss_list_obj:
             print(i)
             self.oss_list.append(i.__dict__)
         return self.oss_list
     except Exception as e:
         error_dict.update(e.__dict__)
         return error_dict
Esempio n. 10
0
 def list_buckets(self):
     service = oss2.Service(auth, url)
     service = oss2.BucketIterator(service)
     lst = []
     for x in service:
         obj = {}
         obj['name'] = x.name
         obj['storage_class'] = x.storage_class
         obj['creation_date'] = x.creation_date
         obj['intranet_endpoint'] = x.intranet_endpoint
         obj['extranet_endpoint'] = x.extranet_endpoint
         lst.append(obj)
     return lst
Esempio n. 11
0
    def iter_buckets(self, prefix='', marker='', max_keys=100, max_retries=None):
        """
        :param prefix: 只列举匹配该前缀的Bucket
        :param marker: 分页符。只列举Bucket名字典序在此之后的Bucket
        :param max_keys: 每次调用 `list_buckets` 时的max_keys参数。注意迭代器返回的数目可能会大于该值。
        :param max_retries:
        :return:
        """
        if not hasattr(self, 'service'):
            self.service = oss2.Service(self.auth, self.endpoint)

        return oss2.BucketIterator(
            self.service, prefix=prefix, marker=marker,
            max_keys=max_keys, max_retries=max_retries)
Esempio n. 12
0
 def list_buckets(self, **kwargs):
     resp = {'status': 'success', 'errmsg': '', 'data': []}
     try:
         service = oss2.Service(self.auth, self.endpoint)
         resp['data'] = ([{
             'name':
             b.name,
             'create_time':
             datetime.datetime.fromtimestamp(b.creation_date),
             'location':
             b.location
         } for b in oss2.BucketIterator(service)])
     except Exception as e:
         resp = {'status': 'failure', 'errmsg': str(e)}
     return resp
Esempio n. 13
0
    def __init__(self,
                 access_key_id,
                 access_key_secret,
                 host,
                 bucket_name,
                 keeps=None):
        """
        access_key_id:
        access_key_secret:
        host: 域名,如 http://oss-cn-hangzhou.aliyuncs.com
        bucket_name: 不需要在后台自动创建,也会自动创建好
        """
        super(OSSBackend, self).__init__(keeps)
        auth = oss2.Auth(access_key_id, access_key_secret)
        self.bucket = oss2.Bucket(auth, host, bucket_name)

        service = oss2.Service(auth, host)
        if bucket_name not in [b.name for b in oss2.BucketIterator(service)]:
            # 说明bucket不存在
            self.bucket.create_bucket()
Esempio n. 14
0
 def _lsbuckets(self, refresh=False):
     if "" not in self.dircache or refresh:
         if self.anon:
             # cannot list buckets if not logged in
             return []
         try:
             service = oss2.Service(auth, self.endpoint)
             files = [b.name for b in oss2.BucketIterator(service)]
         except Exception as e:
             # list bucket permission missing
             raise e
         for f in files:
             f["Key"] = f["Name"]
             f["Size"] = 0
             f["StorageClass"] = "BUCKET"
             f["size"] = 0
             f["type"] = "directory"
             f["name"] = f["Name"]
             del f["Name"]
         self.dircache[""] = files
         return files
     return self.dircache[""]
def create_space(bucket,
                 service,
                 name=None,
                 delete=False):  #创建一个桶,用来存放数据,如果桶已经存在,则不创建
    print([b.name for b in oss2.BucketIterator(service)])  # 列出所有存在的桶

    def read_object(delete_obj=False):  # oss2.ObjectIteratorr用于遍历文件。遍历桶内每个文件
        for b in islice(oss2.ObjectIterator(bucket), 1, None):
            print(b.key)
            if delete_obj:
                bucket.delete_object(b.key)
                print("delete %s success" % b.key)

    def does_bucket_exist(bucket):  #判断存储空间是否存在
        try:
            bucket.get_bucket_info()
        except oss2.exceptions.NoSuchBucket:
            return False
        except:
            raise
        return True

    if delete:
        try:
            # 删除存储空间。
            bucket.delete_bucket()
        except oss2.exceptions.BucketNotEmpty:
            print('bucket is not empty.')
        except oss2.exceptions.NoSuchBucket:
            print('bucket does not exist')
    else:
        if does_bucket_exist(bucket):  # 如果存在此桶,则不创建存储空间
            print("sorry bucket %s has exist." % name)
        else:  # 不存在则创建
            bucket.create_bucket()
            print("creat bucket %s success." % name)
Esempio n. 16
0
def create_space(name=None,delete=False):  #创建云端的桶,用来存储数据
    # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
    auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
    # 通过指定Endpoint和存储空间名称,您可以在指定的地域创建新的存储空间。Endpoint以杭州为例,其它Region请按实际情况填写。
    bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')    
    service = oss2.Service(auth, 'http://oss-cn-beijing.aliyuncs.com')       #查看存储空间
    print([b.name for b in oss2.BucketIterator(service)])  # 列出所有存在的桶

    def read_object(delete_obj=False):  # oss2.ObjectIteratorr用于遍历文件。遍历桶内每个文件
        for b in islice(oss2.ObjectIterator(bucket), 1, None):
            print(b.key)
            if delete_obj:
                bucket.delete_object(b.key)
                print("delete %s success" % b.key)
    def does_bucket_exist(bucket):#判断存储空间是否存在
        try:
            bucket.get_bucket_info()
        except oss2.exceptions.NoSuchBucket:
            return False
        except:
            raise
        return True
    if delete:
        try:
            # 删除存储空间。
            bucket.delete_bucket()
        except oss2.exceptions.BucketNotEmpty:
            print('bucket is not empty.')
        except oss2.exceptions.NoSuchBucket:
            print('bucket does not exist')
    else:
        if does_bucket_exist(bucket):  # 如果存在此桶,则不创建存储空间
            print("sorry bucket %s has exist." % name)
        else:  # 不存在则创建
            bucket.create_bucket()
            print("creat bucket %s success." % name)
Esempio n. 17
0
    def reset(self):
        for i in range(RETRY_COUNT):
            try:
                buckets = oss2.BucketIterator(self.service)
                if not buckets:
                    break

                for bucket in buckets:
                    try:
                        bucket = oss2.Bucket(self.auth, self.region,
                                             str(bucket.name))
                        for obj in islice(oss2.ObjectIterator(bucket), 10):
                            bucket.delete_object(obj.key)

                        try:
                            bucket.delete_bucket()
                        except oss2.exceptions.BucketNotEmpty:
                            print('bucket is not empty.')
                        except oss2.exceptions.NoSuchBucket:
                            print('bucket does not exist')
                    except oss2.exceptions.ClientError:
                        pass
            except oss2.exceptions.ClientError:
                pass
Esempio n. 18
0
 def listAllBuckets(self):
     return [b.name for b in oss2.BucketIterator(self.service)]
Esempio n. 19
0
# 通过环境变量获取,或者把诸如“<你的AccessKeyId>”替换成真实的AccessKeyId等。
access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '<你的AccessKeyId>')
access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET',
                              '<你的AccessKeySecret>')
bucket_name = os.getenv('OSS_TEST_BUCKET', '<你的Bucket>')
endpoint = os.getenv('OSS_TEST_ENDPOINT', '<你的访问域名>')

# 确认上面的参数都填写正确了
for param in (access_key_id, access_key_secret, bucket_name, endpoint):
    assert '<' not in param, '请设置参数:' + param

# 列举所有的Bucket
#   1. 先创建一个Service对象
#   2. 用oss2.BucketIterator遍历
service = oss2.Service(oss2.Auth(access_key_id, access_key_secret), endpoint)
print('\n'.join(info.name for info in oss2.BucketIterator(service)))

# 创建Bucket对象,所有Object相关的接口都可以通过Bucket对象来进行
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint,
                     bucket_name)

# 下面只展示如何配置静态网站托管。其他的Bucket操作方式类似,可以参考tests/test_bucket.py里的内容

# 方法一:可以生成一个BucketWebsite对象来设置
bucket.put_bucket_website(oss2.models.BucketWebsite('index.html',
                                                    'error.html'))

# 方法二:可以直接设置XML
xml = '''
<WebsiteConfiguration>
    <IndexDocument>
Esempio n. 20
0
 def list_buckets(self, **kwargs):
     raw_buckets = oss2.BucketIterator(self.service)
     buckets = [{'id': b.name} for b in raw_buckets]
     return buckets
Esempio n. 21
0
def getAllBucket():
    service = oss2.Service(
        oss2.Auth('LTAI4Fm1MACEyXSzXMW6PT1m',
                  'rCIsBsNYc9nxL2cxhx4PJp2V6FBAsP'),
        'http://oss-cn-hongkong.aliyuncs.com')
    print('\n'.join(info.name for info in oss2.BucketIterator(service)))
Esempio n. 22
0
# -*- coding: utf-8 -*-
import oss2
import time

auth = oss2.Auth('LTAIeEscH1ag5dWj', '1R6ukC8o98clQxNsLDCPI3Is0t4003')
service = oss2.Service(auth, 'oss-cn-huhehaote.aliyuncs.com')

print([b.name for b in oss2.BucketIterator(service)])

bucket = oss2.Bucket(auth, 'oss-cn-huhehaote.aliyuncs.com', 'apk2ali')

from itertools import islice
print(time.strftime('%Y-%m-%d %H:%M:%S'))

# for b in islice(oss2.ObjectIterator(bucket), 10):
#     print(b.key)
#     bucket.delete_object(b.key)
# print time.strftime('%Y-%m-%d %H:%M:%S')
#
for b in islice(oss2.ObjectIterator(bucket), 10):
    print(b.key)
#
print(time.strftime('%Y-%m-%d %H:%M:%S'))
# bucket.put_object_from_file(
#     'qq.apk',
#     '/Users/lvjinzhao/Documents/onlineAutoTest/dailyTest/pageGet/media/appfile/dFSJ3D-release_2017_09_04_1843正式_205_5.0.3.apk'
#     )
print(time.strftime('%Y-%m-%d %H:%M:%S'))
bucket.get_object_to_file('qq.apk', 'local-backup2.apk')
print(time.strftime('%Y-%m-%d %H:%M:%S'))
Esempio n. 23
0
 def list_buckets(self):
     service = oss2.Service(self.auth, self.endpoint)
     return ([b.name for b in oss2.BucketIterator(service)])
Esempio n. 24
0
 def getBuckets(self):
     return oss2.BucketIterator(self.service)
Esempio n. 25
0
 def list_bucket(self):
     return oss2.BucketIterator(self.service)
Esempio n. 26
0
def hello(accessKey, secret):
    auth = oss2.Auth(accessKey, secret)
    service = oss2.Service(auth, 'http://oss-cn-beijing.aliyuncs.com')
    return json.dumps([b.name for b in oss2.BucketIterator(service)])
Esempio n. 27
0
 def get_buckets(self):
     service = oss2.Service(self.auth, self.conf.oss_endpoint)
     # 查看Bucket列表
     print([b.name for b in oss2.BucketIterator(service)])
Esempio n. 28
0
def get_all_buckets_name():
    logger.info('--------获取所有【bucket name】--------')
    service = oss2.Service(auth, OSS_HOST)
    return [info.name for info in oss2.BucketIterator(service)]
Esempio n. 29
0
def list_bucket(auth,endpoint):
    service = oss2.Service(auth, endpoint)
    print([b.name for b in oss2.BucketIterator(service)])
    return True
 def oss_info(self) -> GaugeMetricFamily:
     auth = oss2.Auth(self.ak, self.secret)
     service = oss2.Service(
         auth, 'http://oss-{resion_id}.aliyuncs.com'.format(
             resion_id=self.region_id))
     nested_handler = None
     gauge = None
     label_keys = None
     try:
         oss_bucket_iterator = oss2.BucketIterator(service, max_retries=2)
     except Exception as e:
         try:
             print('connect timeout, now retry......')
             time.sleep(5)
             oss_bucket_iterator = oss2.BucketIterator(service,
                                                       max_retries=2)
         except Exception as e:
             print('oss bucket iterator err')
             print(e)
             return GaugeMetricFamily('aliyun_meta_oss_info', '')
     for instance in oss_bucket_iterator:
         try:
             bucket = oss2.Bucket(auth,
                                  'http://oss-cn-beijing.aliyuncs.com',
                                  instance.name,
                                  connect_timeout=10)
             bucket_info = bucket.get_bucket_info()
             instance_dict = {
                 'name': bucket_info.name,
                 'storage_class': bucket_info.storage_class,
                 'creation_date': bucket_info.creation_date,
                 'intranet_endpoint': bucket_info.intranet_endpoint,
                 'extranet_endpoint': bucket_info.extranet_endpoint,
                 'owner': bucket_info.owner.id,
                 'grant': bucket_info.acl.grant,
                 'data_redundancy_type': bucket_info.data_redundancy_type,
             }
         except Exception as e:
             try:
                 print('connect timeout, now retry...')
                 time.sleep(2)
                 bucket = oss2.Bucket(auth,
                                      'http://oss-cn-beijing.aliyuncs.com',
                                      instance.name,
                                      connect_timeout=10)
                 bucket_info = bucket.get_bucket_info()
                 instance_dict = {
                     'name': bucket_info.name,
                     'storage_class': bucket_info.storage_class,
                     'creation_date': bucket_info.creation_date,
                     'intranet_endpoint': bucket_info.intranet_endpoint,
                     'extranet_endpoint': bucket_info.extranet_endpoint,
                     'owner': bucket_info.owner.id,
                     'grant': bucket_info.acl.grant,
                     'data_redundancy_type':
                     bucket_info.data_redundancy_type,
                 }
             except Exception as e:
                 print('err key')
                 print(e)
                 continue
         if gauge == None:
             label_keys = self.label_keys(instance_dict, nested_handler)
             gauge = GaugeMetricFamily('aliyun_meta_oss_info',
                                       '',
                                       labels=label_keys)
         gauge.add_metric(labels=self.label_values(instance_dict,
                                                   label_keys,
                                                   nested_handler),
                          value=1.0)
     return gauge