全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

管理存储空间

更新时间:2018-05-29 19:39:03

存储空间(Bucket)是存储对象(Object)的容器。对象都隶属于存储空间。

列举存储空间

以下代码用于列举存储空间:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. #Endpoint以杭州为例,其它Region请按实际情况填写。
  6. service = oss2.Service(auth, 'http://oss-cn-hangzhou.aliyuncs.com')
  7. print([b.name for b in oss2.BucketIterator(service)])

创建存储空间

以下代码用于新建存储空间:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. #通过指定Endpoint和Bucket名称,用户可以在指定的区域创建新的Bucket。Endpoint以杭州为例,其它Region请按实际情况填写。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. # 新建Bucket权限默认是私有读写,标准存储类型。
  8. bucket.create_bucket()

关于Endpoint、地域及其对应关系,以及Bucket的命名规范,请参见OSS 基本概念

创建存储空间时,您可以指定其访问权限和存储类型,代码如下:

  1. # 设置Bucket的访问权限为公共读,存储类型为低频访问类型。
  2. bucket.create_bucket(oss2.BUCKET_ACL_PUBLIC_READ, oss2.models.BucketCreateConfig(oss2.BUCKET_STORAGE_CLASS_IA))

删除存储空间

删除存储空间之前,必须先删除存储空间下的所有文件、分片上传产生的碎片及LiveChannel。以下代码用于删除存储空间:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. #Endpoint以杭州为例,其它Region请按实际情况填写。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. try:
  8. bucket.delete_bucket()
  9. except oss2.exceptions.BucketNotEmpty:
  10. print('bucket is not empty.')
  11. except oss2.exceptions.NoSuchBucket:
  12. print('bucket does not exist')

对于非空的存储空间,可以通过边列举边删除(对于分片上传则是终止上传)的方法清空存储空间,然后再删除。

设置存储空间的访问权限

存储空间的访问权限(ACL)有以下三类:

权限 Python SDK对应值
Private(私有读写) oss2.BUCKET_ACL_PRIVATE
PublicRead(公共读私有写) oss2.BUCKET_ACL_PUBLIC_READ
PublicReadWrite(公共读写) oss2.BUCKET_ACL_PUBLIC_READ_WRITE

以下代码用于设置存储空间的访问权限:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. #Endpoint以杭州为例,其它Region请按实际情况填写。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. #设置Bucket访问权限为私有读写。
  8. bucket.put_bucket_acl(oss2.BUCKET_ACL_PRIVATE)

查看存储空间的访问权限

以下代码用于查看存储空间的访问权限:

  1. # -*- coding: utf-8 -*-
  2. import oss2
  3. # 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. auth = oss2.Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
  5. #Endpoint以杭州为例,其它Region请按实际情况填写。
  6. bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
  7. print(bucket.get_bucket_acl().acl)
本文导读目录