开发者社区> 问答> 正文

Java-SDK之如何实现防盗链?

OSS是按使用收费的服务,为了防止用户在OSS上的数据被其他人盗链,OSS支持基于HTTP header中表头字段referer的防盗链方法。
更多关于防盗链的内容请参考 防盗链

设置Referer白名单


通过下面代码设置Referer白名单:

  1. OSSClient client = new OSSClient(endpoint, accessId, accessKey);
  2. List<String> refererList = new ArrayList<String>();
  3. // 添加referer项
  4. refererList.add("http://www.aliyun.com");
  5. refererList.add("http://www.*.com");
  6. refererList.add("http://www.?.aliyuncs.com");
  7. // 允许referer字段为空,并设置Bucket Referer列表
  8. BucketReferer br = new BucketReferer(true, refererList);
  9. client.setBucketReferer(bucketName, br);

注意:
  • Referer参数支持通配符“*”和“?”,更多详细的规则配置可以参考开发人员指南 OSS 防盗链


获取Referer白名单

  1. // 获取Bucket Referer列表
  2. br = client.getBucketReferer(bucketName);
  3. refererList = br.getRefererList();
  4. for (String referer : refererList) {
  5.     System.out.println(referer);
  6. }
  1. 输出结果示例:
  2. http://www.aliyun.com
  3. http://www.*.com"
  4. http://www.?.aliyuncs.com


清空Referer白名单


Referer白名单不能直接清空,只能通过重新设置来覆盖之前的规则。
  1. OSSClient client = new OSSClient(endpoint, accessId, accessKey);
  2. // 默认允许referer字段为空,且referer白名单为空。
  3. BucketReferer br = new BucketReferer();
  4. client.setBucketReferer(bucketName, br);

展开
收起
青衫无名 2017-10-18 11:11:31 2360 0
0 条回答
写回答
取消 提交回答
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载