OSS支持对存储空间(Bucket)设置防盗链,即通过对访问来源设置白名单的机制,避免OSS资源被其他人盗用。
背景信息
为了防止您在OSS上的数据被其他人盗链而产生额外费用,您可以设置防盗链功能,包括以下参数:
- Referer白名单。仅允许指定的域名访问OSS资源。
- 是否允许空Referer。如果不允许空Referer,则只有HTTP或HTTPS header中包含Referer字段的请求才能访问OSS资源。
关于防盗链的更多信息,请参见防盗链。
设置防盗链
以下代码用于设置防盗链。
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 putBucketReferer () {
try {
const result = await client.putBucketReferer('bucket-name', true, [
'example.com',
'*.example.com'
]);
console.log(result);
} catch (e) {
console.log(e);
}
}
putBucketReferer();
获取防盗链配置
以下代码用于获取防盗链配置。
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 getBucketReferer () {
try {
const result = await client.getBucketReferer('bucket-name');
console.log(result);
} catch (e) {
console.log(e);
}
}
getBucketReferer();
清空防盗链
以下代码用于清空防盗链。
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 deleteBucketReferer () {
try {
const result = await client.deleteBucketReferer('bucket-name');
console.log(result);
} catch (e) {
console.log(e);
}
}
deleteBucketReferer();
相关文档
- 关于防盗链的完整示例代码,请参见GitHub示例。
- 关于设置防盗链的API接口说明,请参见PutBucketReferer。
- 关于获取防盗链配置的API接口说明,请参见GetBucketReferer。