OSS是按使用收费的服务,为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。
更多关于防盗链的内容请参考
防盗链
设置Referer白名单
通过下面代码设置Referer白名单:
- OSSClient client = new OSSClient(endpoint, accessId, accessKey);
- List<String> refererList = new ArrayList<String>();
- // 添加referer项
- refererList.add("http://www.aliyun.com");
- refererList.add("http://www.*.com");
- refererList.add("http://www.?.aliyuncs.com");
- // 允许referer字段为空,并设置Bucket Referer列表
- BucketReferer br = new BucketReferer(true, refererList);
- client.setBucketReferer(bucketName, br);
注意:
- Referer参数支持通配符“*”和“?”,更多详细的规则配置可以参考开发人员指南 OSS 防盗链
获取Referer白名单
- // 获取Bucket Referer列表
- br = client.getBucketReferer(bucketName);
- refererList = br.getRefererList();
- for (String referer : refererList) {
- System.out.println(referer);
- }
- 输出结果示例:
- http://www.aliyun.com
- http://www.*.com"
- http://www.?.aliyuncs.com
清空Referer白名单
Referer白名单不能直接清空,只能通过重新设置来覆盖之前的规则。
- OSSClient client = new OSSClient(endpoint, accessId, accessKey);
- // 默认允许referer字段为空,且referer白名单为空。
- BucketReferer br = new BucketReferer();
- client.setBucketReferer(bucketName, br);