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