全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网
对象存储 OSS

管理存储空间

更新时间:2017-06-07 13:26:11

存储空间(Bucket)是OSS上的命名空间,也是计费、权限控制、日志记录等高级功能的管理实体。

查看所有Bucket

通过oss2.BucketIterator可以遍历所有的Bucket:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. auth = oss2.Auth('您的AccessKeyId', '您的AccessKeySecret')
  4. service = oss2.Service(auth, '您的Endpoint')
  5. print([b.name for b in oss2.BucketIterator(service)])

其中,oss2.Service是用来访问“OSS服务”相关的类,目前只是用来列举用户的Bucket。

创建Bucket

通过指定Endpoint和Bucket名,用户可以在指定的区域创建新的Bucket:

  1. bucket = oss2.Bucket(auth, '您的Endpoint', '您的Bucket名')
  2. bucket.create_bucket()

比如,把Endpoint设为 http://oss-cn-beijing.aliyuncs.com `,就可以在北京区域创建一个Bucket。关于Endpoint、区域及其对应关系,以及Bucket的命名规范,请参考OSS 基本概念

创建时还可以指定Bucket的权限,如下面的代码创建一个公共可读的Bucket:

  1. bucket.create_bucket(oss2.BUCKET_ACL_PUBLIC_READ)

删除Bucket

用下面的方法删除一个空的Bucket:

  1. try:
  2. bucket.delete_bucket()
  3. except oss2.exceptions.BucketNotEmpty:
  4. print('bucket is not empty.')
  5. except oss2.exceptions.NoSuchBucket:
  6. print('bucket does not exist')

如果Bucket非空,即还有文件或进行中的分片上传,那么就无法删除,SDK会抛出BucketNotEmpty异常。如果,Bucket不存在,则抛出NoSuchBucket异常。

注意

  • 一旦Bucket被删除,Bucket名可能会被其他用户申请。
  • 对于非空Bucket,可以通过边列举边删除(对于分片上传则是终止上传)的方法清空Bucket后,再删除。

查看Bucket访问权限

  1. print(bucket.get_bucket_acl().acl)

设置Bucket访问权限

把Bucket的访问权限设为私有:

  1. bucket.put_bucket_acl(oss2.BUCKET_ACL_PRIVATE)

提示:

  • Bucket的访问权限私有读写公共读私有写公共读写,分别对应 oss2.BUCKET_ACL_PRIVATEoss2.BUCKET_ACL_PUBLIC_READoss2.BUCKET_ACL_PUBLIC_READ_WRITE
本文导读目录