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

创建 Bucket

使用putBucket接口创建一个 Bucket 时,您需要指定 Bucket 的名称:

let OSS = require('ali-oss');

let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});

// putBucket
async function putBucket() {
  try {
    const result = await client.putBucket('your bucket name');
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

putBucket();

存储空间的命名规范,请参见基本概念中的命名规范。创建存储空间详情,请参见管理存储空间

获取 endpoint 信息,请参见访问域名和数据中心文档。

查看所有 Bucket

使用listBuckets接口列出当前用户下的所有 Bucket。您还可以指定prefix参数,列出特定前缀的所有 Bucket:

let OSS = require('ali-oss');

let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});

async function listBuckets() {
  try {
    const result = await client.listBuckets();
    console.log(result);
    const result2 = await client.listBuckets({
      prefix: 'prefix',
    });
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

listBuckets();

删除 Bucket

使用deleteBucket接口删除一个 Bucket,您需要指定 Bucket 的名称:

let OSS = require('ali-oss');

let client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});

async function deleteBucket() {
  try {
    const result = await client.deleteBucket('your bucket name');
    console.log(result);
  } catch (err) {
    console.log(err);
  }
}

deleteBucket();
注意
  • 如果该 Bucket 下还有文件,则需要先删除所有文件才能删除 Bucket。
  • 如果该 Bucket 下还有未完成的上传请求,则需要通过listUploadsabortMultipartUpload取消请求后才能删除 Bucket。

Bucket访问权限

用户可以设置 Bucket 的访问权限,允许或者禁止匿名用户对其内容进行读写。更多关于访问权限的内容请参考访问权限

  • 获取 Bucket 的访问权限(ACL)

    通过getBucketACL查看 Bucket 的 ACL:

    let OSS = require('ali-oss');
    
    let client = new OSS({
      region: '<Your region>',
      accessKeyId: '<Your AccessKeyId>',
      accessKeySecret: '<Your AccessKeySecret>'
    });
    
    async function getBucketACL() {
      try {
        const result = await client.getBucketACL('luozhang002');
        console.log(result);
      } catch (err) {
        console.log(err);
      }
    }
    
    getBucketACL();
    
  • 设置 Bucket 的访问权限(ACL)

    通过putBucketACL设置 Bucket 的 ACL:

    let OSS = require('ali-oss');
    
    let client = new OSS({
      region: '<Your region>',
      accessKeyId: '<Your AccessKeyId>',
      accessKeySecret: '<Your AccessKeySecret>'
    });
    
    async function putBucketACL() {
      try {
        const result = await client.putBucketACL('bucket name', 'public-read');
        console.log(result);
      } catch (err) {
        console.log(err);
      }
    }
    
    putBucketACL();