在OSS配置Referer白名单来允许特定域名的网站可以访问OSS文件后,您可以使用curl
命令测试设置的防盗链是否生效。
前提条件
操作步骤
使用curl
命令测试的三种场景如下:
说明
仅适用于公共访问的文件。如果是私有访问的文件,需要添加签名信息再进行访问。
白名单中的Referer
通过curl
命令加参数-e
,传递设置的白名单中Referer到访问地址,代表由http://www.aliyun.com
网站传递的请求。
curl -e http://www.aliyun.com http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt
http://www.aliyun.com
在白名单中,没有报错,系统直接打印demo.txt中的内容,证明白名单Referer设置生效。
demo
不在白名单中的Referer
通过curl
命令加参数-e
,传递不在白名单中的Referer到访问地址。
curl -e http://www.example.edu http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt
http://www.example.edu
不在白名单中,系统报错,证明白名单Referer设置生效。
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>AccessDenied</Code>
<Message>You are denied by bucket referer policy.</Message>
<RequestId>6566AC76E41FB93030CE****</RequestId>
<HostId>example****.oss-cn-hangzhou.aliyuncs.com</HostId>
<BucketName>example****</BucketName>
<EC>0003-00000503</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0003-00000503</RecommendDoc>
</Error>
空Referer
通过curl
命令不加参数访问,代表通过浏览器直接打开URL。
curl http://example****.oss-cn-hangzhou.aliyuncs.com/demo.txt
由于设置了允许Referer为空,没有报错,系统直接打印demo.txt中的内容。
demo
相关文档
您还可以通过查看OSS日志中的实际访问记录来分析防盗链是否生效。具体操作,请参见访问对象存储OSS的过程中如何查询Object的访问和操作记录。