全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件 ET大脑
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

管理Bucket

更新时间:2018-07-16 16:06:14

存储空间(Bucket)是OSS上的命名空间,也是计费、权限控制、日志记录等高级功能的管理实体。

查看所有Bucket

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

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });
  7. async function listBuckets() {
  8. try {
  9. const result = await client.listBuckets();
  10. console.log(result);
  11. const result2 = await client.listBuckets({
  12. prefix: 'prefix',
  13. });
  14. console.log(result);
  15. } catch (err) {
  16. console.log(err);
  17. }
  18. }
  19. listBuckets();

创建Bucket

使用putBucket接口创建一个Bucket,用户需要指定Bucket的名字:

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });
  7. // putBucket
  8. async function putBucket() {
  9. try {
  10. const result = await client.putBucket('your bucket name');
  11. console.log(result);
  12. } catch (err) {
  13. console.log(err);
  14. }
  15. }
  16. putBucket();

注意:

  • Bucket的命名规范请查看OSS 基本概念
  • 由于存储空间的名字是全局唯一的,所以必须保证您的Bucket名字不与别人的重复。

删除Bucket

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

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });
  7. async function deleteBucket() {
  8. try {
  9. const result = await client.deleteBucket('your bucket name');
  10. console.log(result);
  11. } catch (err) {
  12. console.log(err);
  13. }
  14. }
  15. deleteBucket();

注意:

  • 如果该Bucket下还有文件存在,则需要先删除所有文件才能删除Bucket。
  • 如果该Bucket下还有未完成的上传请求,则需要通过listUploadsabortMultipartUpload先取消请求才能删除Bucket。

Bucket访问权限

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

获取Bucket的访问权限(ACL)

通过getBucketACL查看Bucket的ACL:

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });
  7. async function getBucketACL() {
  8. try {
  9. const result = await client.getBucketACL('luozhang002');
  10. console.log(result);
  11. } catch (err) {
  12. console.log(err);
  13. }
  14. }
  15. getBucketACL();

设置Bucket的访问权限(ACL)

通过putBucketACL设置Bucket的ACL:

  1. let OSS = require('ali-oss');
  2. let client = new OSS({
  3. region: '<Your region>',
  4. accessKeyId: '<Your AccessKeyId>',
  5. accessKeySecret: '<Your AccessKeySecret>'
  6. });
  7. async function putBucketACL() {
  8. try {
  9. const result = await client.putBucketACL('bucket name', 'public-read');
  10. console.log(result);
  11. } catch (err) {
  12. console.log(err);
  13. }
  14. }
  15. putBucketACL();
本文导读目录