阅读578 返回首页    go 敦煌网


PutBucketReferer__关于Bucket的操作_API 参考_对象存储 OSS-阿里云

Put Bucket Referer操作可以设置一个bucket的referer访问白名单和是否允许referer字段为空的请求访问。Bucket Referer防盗链具体见OSS防盗链

请求语法

PUT /?referer HTTP/1.1
Date: GMT Date
Content-Length:ContentLength
Content-Type: application/xml
Host: BucketName.oss.aliyuncs.com
Authorization: SignatureValue

<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
<AllowEmptyReferer>true</AllowEmptyReferer >
    <RefererList>
        <Referer> https://www.aliyun.com</Referer>
        <Referer> https://www.aliyun.com</Referer>
        <Referer> https://www.*.com</Referer>
        <Referer> https://www.?.aliyuncs.com</Referer>
    </RefererList>
</RefererConfiguration>

请求元素(Request Elements)

名称 描述 是否必需
RefererConfiguration 保存Referer配置内容的容器
类型:容器
子节点:AllowEmptyReferer节点、RefererList节点
父节点:无
AllowEmptyReferer 指定是否允许referer字段为空的请求访问。
类型:枚举字符串
有效值:true或false 默认值:true
父节点:RefererConfiguration
RefererList 保存referer访问白名单的容器。
类型:容器
父节点:RefererConfiguration
子节点:Referer
Referer 指定一条referer访问白名单。
类型:字符串
父节点:RefererList
可选

细节分析

  1. 只有Bucket的拥有者才能发起Put Bucket Referer请求,否则返回403 Forbidden消息。错误码:AccessDenied。
  2. AllowEmptyReferer中指定的配置将替换之前的AllowEmptyReferer配置,该字段为必填项,系统中默认的AllowEmptyReferer配置为true。
  3. 此操作将用RefererList中的白名单列表覆盖之前配置的白名单列表,当用户上传的RefererList为空时(不包含Referer请求元素),此操作会覆盖已配置的白名单列表,即删除之前配置的RefererList。
  4. 如果用户上传了Content-MD5请求头,OSS会计算body的Content-MD5并检查一致性,如果不一致,将返回InvalidDigest错误码。

示例

请求示例:

不包含Referer的请求示例:

PUT /?referer HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=

<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
<AllowEmptyReferer>true</AllowEmptyReferer >
< RefererList />
</RefererConfiguration>

包含Referer的请求示例:

PUT /?referer HTTP/1.1
Host: oss-example.oss.aliyuncs.com
Content-Length: 247
Date: Fri, 04 May 2012 03:21:12 GMT
Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=

<?xml version="1.0" encoding="UTF-8"?>
<RefererConfiguration>
<AllowEmptyReferer>true</AllowEmptyReferer >
< RefererList>
<Referer> https://www.aliyun.com</Referer>
<Referer> https://www.aliyun.com</Referer>
<Referer> https://www.*.com</Referer>
<Referer> https://www.?.aliyuncs.com</Referer>
</ RefererList>
</RefererConfiguration>

返回示例:

HTTP/1.1 200 OK
x-oss-request-id: 534B371674E88A4D8906008B
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS

最后更新:2016-11-23 17:16:07

  上一篇:go PutBucketWebsite__关于Bucket的操作_API 参考_对象存储 OSS-阿里云
  下一篇:go PutBucketLifecycle__关于Bucket的操作_API 参考_对象存储 OSS-阿里云