Bucket管理
更新时间:2022-06-16
新建Bucket
-
基本流程
- 创建BosClient。
- 执行createBucket()方法,你需要提供Bucket的名字。
-
示例代码
JavaScript1let newBucketName = <BucketName>; // 新建一个Bucket,指定Bucket名称 2client.createBucket(newBucketName) 3 .then(function() { 4 // 创建完成,添加您自已的代码; 5 }) 6 .catch(function(error) { 7 // 创建失败,添加您自己的代码,处理异常 8 });
注意: 由于Bucket的名称在所有区域中是唯一的,所以需要保证BucketName不与其他所有区域上的BucketName相同。
设置Bucket存储类型
新建的Bucket默认是标准存储类型,可通过如下代码设置或获取指定Bucket的存储类型:
- 基本流程
- 创建BosClient
- putBucketStorageclass()方法
参数 | 说明 |
---|---|
bucketName | 存储桶名称 |
storageClass | 存储类型,支持: 'STANDARD'(标准存储类型)、'STANDARD_IA'(低频存储)、'ARCHIVE'(归档存储)、'COLD'(冷存储)、'MAZ_STANDARD'(标准存储-多AZ)、'MAZ_STANDARD_IA'(低频存储-多AZ) |
-
示例代码
JavaScript1client.putBucketStorageclass(bucketName,storageClass) 2 .then(function() { 3 // 设置完成 4 }) 5 .catch(function(error) { 6 // 设置失败 7 });
查看Bucket列表
-
基本流程
- 创建BosClient。
- 执行listBuckets()方法。
-
示例代码
如下代码可以列出用户所有的Bucket:
JavaScript1client.listBuckets() 2 .then(function(response) { 3 (response.body.buckets || []).forEach(function (bucket) { console.log(bucket.name) }) 4 }) 5 .catch(function() { 6 // 查询失败,添加您自己的代码,处理异常 7 });
判断Bucket是否存在
-
基本流程
- 创建BosClient。
- 执行doesBucketExist()方法。
-
示例代码
JavaScript1client.doesBucketExist(<BucketName>) //指定Bucket名称 2 .then(function(response) { 3 if(response) { 4 console.log('Bucket exists'); 5 } 6 else { 7 console.log('Bucket not exists'); 8 } 9 }) 10 .catch(function() { 11 // 查询失败,添加您自己的代码,处理异常 12 });
删除Bucket
-
基本流程
- 创建BosClient。
- 执行deleteBucket()方法。
-
示例代码
JavaScript1client.deleteBucket(<BucketName>) 2 .then(function() { 3 // 删除完成 4 }) 5 .catch(function(error) { 6 // 删除失败 7 });
注意:如果Bucket不为空(即Bucket中有Object和未完成的三步上传Part存在),则Bucket无法被删除,必须清空Bucket后才能成功删除。
Bucket权限控制
设置Bucket的访问权限
-
基本流程
- 创建BosClient。
- 执行setBucketAcl()方法。
-
示例代码
JavaScript1// 设置Bucket访问权限为private 2client.setBucketCannedAcl(<BucketName>, 'private') 3 .then(function() { 4 // 设置完成 5 }) 6 .catch(function(error) { 7 // 设置失败 8 });
说明: Bucket访问权限包含三个值:
private
、public-read
、public-read-write
,它们分别对应相关权限。具体内容可以参考《BOS API文档 使用CannedAcl方式的权限控制》。
设置指定用户对Bucket的访问权限
-
基本流程
- 创建BosClient。
- 执行setBucketAcl()方法。
-
示例代码
JavaScript1let grant_list = [ 2 { 3 'grantee': [ 4 {'id': <UserID1>}, // 授权给特定用户1 5 {'id': <UserID2>}, // 授权给特定用户2 6 ], 7 'permission': ['FULL_CONTROL'] // 设置权限为FULL_CONTROL 8 }, 9 { 10 'grantee': [ 11 {'id': <UserID3>} // 授权给特定用户3 12 ], 13 'permission': ['READ'] // 设置权限为READ 14 } 15]; 16client.setBucketAcl(<BucketName>, grant_list) 17 .then(function() { 18 // 设置完成 19 }) 20 .catch(function(error) { 21 // 设置失败 22 });
注意:Permission中的权限设置包含三个值:
READ
、WRITE
、FULL_CONTROL
,它们分别对应相关权限。具体内容可以参考《BOS API文档 上传ACL文件方式的权限控制》。