Node.js防盗链
防盗链通过设置Referer列表(包括白名单Referer和黑名单Referer)以及是否允许空Referer的方式,限制您Bucket内资源的访问来源,避免Bucket内的资源被其他人盗用。
设置防盗链
以下代码用于设置防盗链。
const OSS = require('ali-oss')
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 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',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 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',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 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。