Gimhoy's Blog

[文章目录]

您曾经浏览过

百度BCS支持防盗链功能啦!

本文最后更新于2013年6月13日,已超过三年没有更新,如果文章内容失效,请反馈给我们,谢谢!

开始的话

前几天看到百度开发者中心说百度云存储BCS支持防盗链功能了,一直没时间尝试。今天试了一下,终于成功了。已经添加到了BCS-support插件中,有用该插件的朋友可以更新到v1.1.1最新版了。。

如果没有安装插件也想给Bucket设置防盗链,可以使用我写好的一个PHP小程序,方法如下:
 

设置防盗链小程序

1、下载:anti-stealing-link.zip

2、解压之后,打开gimhoy.php 填入bucket(如果不在BAE环境下,还需填入AK和SK)

3、将整个文件夹上传到服务器,打开gimhoy.php

4、如果响应了OK Status:200,则说明设置成功

当然这只是我自己的方法,可能不是很成熟,轻拍。。

  
下面是官方文档:

官方文档

如何设置防盗链

为防止用户存储在BCS上的数据下载地址被他人盗链、产生额外的流量及版权盗用,开发者可通过HTTP协议中的表头(header)字段 referer 方式实现防盗链的功能。

目前BCS支持匿名用户访问的情况下,实现防盗链功能。

实现方式

由于通过BCS操作数据都会首先访问ACL模块,进行权限验证,以确定用户是否有权限对bucket或object进行操作,所以防盗链的功能在ACL模块中实现,开发者只需通过 “put_acl” 接口在policy中进行相关设置即可。

了解policy字段的相关说明,请参考《Policy字段说明》。

范例

假设用户名为“baidu”的开发者,他有很多图片存储在 bcs 的 public-demo bucket中; 现在需要将图片权限设置为允许匿名用户通过 www.baidu.com 请求访问图片。

情境1:对多文件设置防盗链
可通过对Bucket设置相关Policy,实现对多文件进行防盗链设置。

{"statements":
[
{
"action":["get_object"],
"effect":"allow",
"resource":["public-demo\/"],
"user":["*"],
"referer":["http://www.baidu.com/*"]
}
]
}

上述Policy可实现:

如果访问请求来自于referer所指定的 www.baidu.com ,则允许其对public-demo bucket中的所有存储对象进行get_object操作。

情境2:对单个文件设置防盗链
如需对单个文件设置防盗链功能,则可对Object设置相关policy。

{"statements":
[
{
"action":["get_object"],
"effect":"allow",
"resource":["public-demo/acl_policy.png"],
"user":["*"],
"referer":["http://www.baidu.com/*"]
}
]
}

上述Policy可实现:

如果访问请求来自于referer所指定的 www.baidu.com ,则允许其对public-demo bucket中的acl_policy.png文件进行get_object操作。



免费获得每月10G空间+10G免费流量
No tags
  • Comment (13)
  • Trackback (2)
  • shunjieyGoogle ChromeWindowsChina2014/02/24 01:35@Ta

    为什么这个文件无法下载了?

    #5
  • vpn账号分享Google ChromeWindowsChina2013/12/05 12:01@Ta

    好东西,现在正在测试下呢= =

    #4
  • guozhang164Google ChromeWindowsChina2013/07/05 02:06@Ta

    大神,求解。为什么我的BCS插件开启了没用一样,还是无法上传图片,显示无法将上传的文件移动至 wp-content/uploads。QQ:451026920 大神求解脱啊。。。。自己研究已通宵了都。。

    #3
    • GimhoyGoogle ChromeWindowsChina2013/07/09 11:54@Ta

      解决办法:http://blog.gimhoy.com/archives/fix-bae-upload-error.html

  • George SvnGoogle ChromeLinuxChina2013/06/24 21:27@Ta

    我已经按你博客上的设置好了,可是怎么没有起作用呢?还有,我用你的那个防盗链的脚本,也还是不管用啊~~怎么破??求支招~~~

    #2
    • GimhoyGoogle ChromeWindowsChina2013/06/26 15:06@Ta

      给个资源的链接看看

  • sxbxjhwmGoogle ChromeWindowsUnited States2013/06/12 15:20@Ta

    博主能不能详细解释下 bcs-support 插件里的域名怎么设置?我填博客的域名结果没生效,请问是不是应该在 BAE 上另外绑定个域名用来链接附件?还有在开发者中心里需要设置什么吗?
    P.S. 我在后台填的域名是 http://www.sxb.pw/archiver/* ,结果前台文章中附件的链接还是 bcs.duapp.com 开头的直链

    #1
    • GimhoyGoogle ChromeWindowsChina2013/06/12 15:22@Ta

      后台填写的域名不是链接的域名,是防盗链用的。附件的链接地址更改比较麻烦,而且因为百度BCS暂时不提供绑定域名服务,所以并不推荐更改。。

      • sxbxjhwmGoogle ChromeWindowsUnited States2013/06/13 15:01@Ta

        @Gimhoy:那后台域名就留空。。。?

        • GimhoyGoogle ChromeWindowsChina2013/06/13 18:19@Ta

          留空就行。。只要勾选了防盗链,会有一个自动判断的

          • sxbxjhwmGoogle ChromeWindowsUnited States2013/06/14 16:49@Ta

            @Gimhoy:那就好 = =

          • tintinGoogle ChromeWindowsChina2013/10/28 22:23@Ta

            @Gimhoy:希望能出个添加白名单的防盗链的BCS插件,谢谢!!

          • tintinGoogle ChromeWindowsChina2013/10/28 22:33@Ta

            @Gimhoy:还有就是BCS的防盗链功能不起作用,