全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

防盗链

更新时间:2018-06-14 16:38:25

为了防止您在OSS上的数据被其他人盗链而产生额外费用,OSS提供防盗链功能。通过设置Referer白名单,仅允许指定的域名访问OSS上的数据。

更多关于防盗链的介绍,请参见开发指南中的设置防盗链

设置Referer白名单

以下代码用于设置Referer白名单:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String bucketName = "<yourBucketName>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  9. List<String> refererList = new ArrayList<String>();
  10. // 添加Referer。Referer参数支持通配符“*”和“?”。
  11. refererList.add("http://www.aliyun.com");
  12. refererList.add("http://www.*.com");
  13. refererList.add("http://www.?.aliyuncs.com");
  14. // 设置存储空间Referer列表。
  15. BucketReferer br = new BucketReferer(true, refererList);
  16. ossClient.setBucketReferer(bucketName, br);
  17. // 关闭OSSClient。
  18. ossClient.shutdown();

获取Referer白名单

以下代码用于获取Referer白名单:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String bucketName = "<yourBucketName>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  9. // 获取存储空间Referer列表。
  10. BucketReferer br = ossClient.getBucketReferer(bucketName);
  11. List<String> refererList = br.getRefererList();
  12. for (String referer : refererList) {
  13. System.out.println(referer);
  14. }
  15. // 关闭OSSClient。
  16. ossClient.shutdown();

清空Referer白名单

以下代码用于清空Referer白名单:

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String bucketName = "<yourBucketName>";
  7. // 创建OSSClient实例。
  8. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  9. // Referer白名单不能直接清空,需要新建一个允许Referer为空的规则来覆盖之前的规则。
  10. BucketReferer br = new BucketReferer();
  11. ossClient.setBucketReferer(bucketName, br);
  12. // 关闭OSSClient。
  13. ossClient.shutdown();
本文导读目录