管理存储空间

bucket 是 MSS 上的存储空间,是对象组织管理的基本单位;一个用户允许有多个 bucket,MSS 的 bucket 具有以下特点:

  1. 权限设置的基本单位
  2. cors设置的基本单元
  3. 对象数量没有限制
  4. 空间大小没有限制
  5. 扁平结构,不允许嵌套
  6. 名字不能修改,且不能重复

本节将详细介绍 MSS bucket 的基本操作。

列举bucket

S3Connection 对象使用 S3 协议访问 MSS,该连接对象同时是一个遍历所有 bucket 的迭代器:
列举bucket:

from mssapi.s3.connection import S3Connection

conn = S3Connection(
    aws_access_key_id="您的AccessKey",
    aws_access_secret_key="您的SecrectKey",
    host="您需要访问的域名")

bucket_names = [b.name for b in conn]

其中,b 是 mssapi.s3.bucket.Bucket 对象。

创建bucket

假设已经创建 MSS 的 S3 协议连接对象——conn:

bucket = None
try:
    bucket = conn.create_bucket("您需要创建的bucket名字")
except mssapi.exception.S3CreateError as e:
    print "bucket已经存在"
except mssapi.exception.MssapiClientError as e:
    print "bucket名字不符合MSS规范,详情参考MSS文档中的基本概念Bucket一节"
except mssapi.exception.S3ResponseError as e:
    print e

删除bucket

参考以下方式可以删除 MSS 中一个空 bucket:

bucket = None
try:
    bucket = conn.delete_bucket("您需要删除的bucket名字")
except mssapi.exception.S3ResponseError as e:
    print e

注意: MSS 禁止删除非空 bucket,对于非空 bucket,请先参考管理对象一节删除该 bucket 下的所有对象。

设置权限

MSS 中的 bucket 只有两种权限:“private”和“public-read",详情参考MSS基本概念中的访问控制一节。
设置bucket权限:

# 将bucket设置为公开
try:
    bucket.make_public()
except mssapi.exception.S3ResponseError as e:
    print e

# 将bucket设置为私有
try:
    bucket.make_private()
except mssapi.exception.S3ResponseError as e:
    print e

查看权限

查看bucket的权限:

print bucket.get_acl()