PutBucketReferer接口用于设置存储空间(Bucket)的防盗链(Referer)。您可以使用此接口设置Referer的访问白名单以及是否允许Referer字段为空。
请求语法
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>http://www.aliyun.com</Referer> <Referer>https://www.aliyun.com</Referer> <Referer>http://www.*.com</Referer> <Referer>https://www.?.aliyuncs.com</Referer> </RefererList> </RefererConfiguration>
请求元素
名称 | 类型 | 是否必需 | 描述 |
---|---|---|---|
RefererConfiguration | 容器 | 是 | 保存Referer配置内容的容器。 子节点:AllowEmptyReferer、RefererList 父节点:无 |
AllowEmptyReferer | 枚举字符串 | 是 | 指定是否允许Referer字段为空的请求访问。 取值:true(默认值)、false 父节点:RefererConfiguration |
RefererList | 容器 | 是 | 保存Referer访问白名单的容器。
说明 PutBucketReferer为覆盖语义,即RefererList中的新指定的白名单列表将覆盖已配置的白名单列表。当您上传的RefererList为空时(即不包含Referer请求元素),此操作将清空RefererList中已配置的白名单列表。
父节点:RefererConfiguration 子节点:Referer |
Referer | 字符串 | 否 | 指定一条Referer访问白名单。 父节点:RefererList |
示例
请求示例
- 不包含Referer的请求示例
PUT /?referer HTTP/1.1 Host: BucketName.oss.example.com Content-Length: 247 Date: Fri, 04 May 2012 03:21:12 GMT Authorization: OSS qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrTZH**** <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>true</AllowEmptyReferer> <RefererList/> </RefererConfiguration>
- 包含Referer的请求示例
PUT /?referer HTTP/1.1 Host: BucketName.oss.example.com Content-Length: 247 Date: Fri, 04 May 2012 03:21:12 GMT Authorization: OSS qn6qrrqxo2oawuk53otf****:KU5h8YMUC78M30dXqf3JxrTZ**** <?xml version="1.0" encoding="UTF-8"?> <RefererConfiguration> <AllowEmptyReferer>true</AllowEmptyReferer> <RefererList> <Referer>http://www.aliyun.com</Referer> <Referer>https://www.aliyun.com</Referer> <Referer>http://www.*.com</Referer> <Referer>https://www.?.aliyuncs.com</Referer> </RefererList> </RefererConfiguration>
返回示例
HTTP/1.1 200 OK x-oss-request-id: 534B371674E88A4D8906**** Date: Fri, 04 May 2012 03:21:12 GMT Content-Length: 0 Connection: keep-alive Server: AliyunOSS
SDK
此接口所对应的各语言SDK如下:
错误码
错误码 | HTTP状态码 | 描述 |
---|---|---|
AccessDenied | 403 | 没有操作权限。只有Bucket的拥有者才能发起PutBucketReferer请求。 |
InvalidDigest | 400 | 上传了Content-MD5请求头后,OSS会计算消息体的Content-MD5并检查一致性,如果不一致则返回此错误码。 |