开发者社区> 问答> 正文

JavaScript-SDK之如何实现管理Bucket?

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

查看所有Bucket


使用listBuckets接口列出当前用户下的所有Bucket,用户还可以指定prefix参数,列出Bucket名字为特定前缀的所有Bucket: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});
co(function* () {
  var result = yield client.listBuckets();
  console.log(result);
  var result = yield client.listBuckets({
    prefix: 'prefix'
  });
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



创建Bucket


使用putBucket接口创建一个Bucket,用户需要指定Bucket的名字: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});
co(function* () {
  var result = yield client.putBucket('bucket name');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});


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


删除Bucket


使用deleteBucket接口删除一个Bucket,用户需要指定Bucket的名字: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});
co(function* () {
  var result = yield client.deleteBucket('bucket name');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});

[backcolor=transparent]注意:
  • 如果该Bucket下还有文件存在,则需要先删除所有文件才能删除Bucket。
  • 如果该Bucket下还有未完成的上传请求,则需要通过listUploads和 abortMultipartUpload先取消请求才能删除Bucket。


Bucket访问权限


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

获取Bucket的访问权限(ACL)


通过getBucketACL查看Bucket的ACL: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});
co(function* () {
  var result = yield client.getBucketACL('bucket name');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});



设置Bucket的访问权限(ACL)


通过putBucketACL设置Bucket的ACL: var co = require('co');
var OSS = require('ali-oss');
var client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>'
});
co(function* () {
  var result = yield client.putBucketACL('bucket name', 'region', 'public-read');
  console.log(result);
}).catch(function (err) {
  console.log(err);
});


展开
收起
青衫无名 2017-10-19 09:36:49 1880 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载