OSS是按使用收费的服务,为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。更多OSS防盗链请参考:
OSS防盗链
设置Referer白名单
通过putBucketReferer设置Referer白名单:
var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
co(function* () {
var result = yield client.putBucketReferer('bucket-name', 'region', true, [
'my-domain.com',
'*.example.com'
]);
console.log(result);
}).catch(function (err) {
console.log(err);
});
查看Referer白名单
通过getBucketReferer查看Referer白名单:
var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
co(function* () {
var result = yield client.getBucketReferer('bucket-name', 'region');
console.log(result);
}).catch(function (err) {
console.log(err);
});
清空Referer白名单
通过deleteBucketReferer设置清空Referer白名单:
var co = require('co');
var OSS = require('ali-oss')
var client = new OSS({
region: '<Your region>'
accessKeyId: '<Your AccessKeyId>',
accessKeySecret: '<Your AccessKeySecret>',
bucket: '<Your bucket name>'
});
co(function* () {
var result = yield client.deleteBucketReferer('bucket-name', 'region');
console.log(result);
}).catch(function (err) {
console.log(err);
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
OSS会在以下访问操作时进行防盗链验证:
综上,OSS在接收到任何带有或不带Referer字段的访问请求时,都会依据防盗链的配置规则进行验证,确保请求来源合法,防止未经授权的盗链行为导致的额外费用和资源滥用。