Bucket

新建Bucket

  • 基本流程

    1. 创建BosClient。
    2. 执行createBucket()方法,你需要提供Bucket的名字。
  • 示例代码

    let newBucketName = <BucketName>;    // 新建一个Bucket,指定Bucket名称
    client.createBucket(newBucketName)
      .then(function() {
               // 创建完成,添加您自已的代码;
      })
      .catch(function(error) {
              // 创建失败,添加您自己的代码,处理异常
      });
    

    注意: 由于Bucket的名称在所有区域中是唯一的,所以需要保证BucketName不与其他所有区域上的BucketName相同。

查看Bucket列表

  • 基本流程

    1. 创建BosClient。
    2. 执行listBuckets()方法。
  • 示例代码

    如下代码可以列出用户所有的Bucket:

    client.listBuckets()
      .then(function(response) {
          (response.body.buckets || []).forEach(function (bucket) { console.log(bucket.name) })
          })
      .catch(function() {
          // 查询失败,添加您自己的代码,处理异常
      });
    

判断Bucket是否存在

  • 基本流程

    1. 创建BosClient。
    2. 执行doesBucketExist()方法。
  • 示例代码

    client.doesBucketExist(<BucketName>)             //指定Bucket名称
      .then(function(response) {
          if(response) {
              console.log('Bucket exists');
          }
          else {
              console.log('Bucket not exists');
          }
      })
      .catch(function() {
          // 查询失败,添加您自己的代码,处理异常
      });
    

删除Bucket

  • 基本流程

    1. 创建BosClient。
    2. 执行deleteBucket()方法。
  • 示例代码

    client.deleteBucket(<BucketName>)
      .then(function() {
          // 删除完成
      })
      .catch(function(error) {
          // 删除失败
      });
    

    注意:如果Bucket不为空(即Bucket中有Object和未完成的三步上传Part存在),则Bucket无法被删除,必须清空Bucket后才能成功删除。

Bucket权限控制

设置Bucket的访问权限

  • 基本流程

    1. 创建BosClient。
    2. 执行setBucketAcl()方法。
  • 示例代码

    // 设置Bucket访问权限为private
    client.setBucketCannedAcl(<BucketName>, 'private')
      .then(function() {
          // 设置完成
      })
      .catch(function(error) {
          // 设置失败
      });
    

    说明: Bucket访问权限包含三个值: privatepublic-readpublic-read-write ,它们分别对应相关权限。具体内容可以参考《BOS API文档 使用CannedAcl方式的权限控制》。

设置指定用户对Bucket的访问权限

  • 基本流程

    1. 创建BosClient。
    2. 执行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中的权限设置包含三个值:READWRITEFULL_CONTROL,它们分别对应相关权限。具体内容可以参考《BOS API文档 上传ACL文件方式的权限控制》。