本文介绍如何设置、获取和删除指定存储空间(Bucket)的授权策略(Policy)。
设置Bucket Policy
以下代码用于设置Bucket Policy:
const OSS = require('ali-oss')
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// yourbucketname填写存储空间名称。
bucket: 'yourbucketname'
});
// 设置授权策略。
const policy = {
Version: '1',
Statement: [
{
Action: ['oss:PutObject', 'oss:GetObject'],
Effect: 'Deny',
Principal: ['27737962156157xxxx'],
Resource: ['acs:oss:*:174649585760xxxx:examplebucket']
}
]
};
async function putPolicy() {
const result = await client.putBucketPolicy('yourbucketname', policy);
console.log(result)
}
putPolicy()
获取Bucket Policy
以下代码用于获取Bucket Policy信息:
const OSS = require('ali-oss')
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// yourbucketname填写存储空间名称。
bucket: 'yourbucketname'
});
// 获取授权策略。
async function getPolicy() {
const result = await client.getBucketPolicy('yourbucketname');
console.log(result.policy)
}
getPolicy()
删除Bucket Policy
以下代码用于删除Bucket Policy:
const OSS = require('ali-oss')
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
accessKeyId: 'yourAccessKeyId',
accessKeySecret: 'yourAccessKeySecret',
// yourbucketname填写存储空间名称。
bucket: 'yourbucketname'
});
// 删除授权策略。
async function deletePolicy() {
const result = await client.deleteBucketPolicy('yourbucketname');
console.log(result)
}
deletePolicy()
相关文档
- 关于Bucket Policy的完整示例代码,请参见GitHub示例。
- 关于设置Bucket Policy的API接口说明,请参见PutBucketPolicy。
- 关于获取Bucket Policy的API接口说明,请参见GetBucketPolicy。
- 关于删除Bucket Policy的API接口说明,请参见DeleteBucketPolicy。