PutBucketReferer介面用於設定一個Bucket的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>
請求元素(Request Elements)
名稱 | 類型 | 是否必需 | 描述 |
---|---|---|---|
RefererConfiguration | 容器 | 是 | 保存Referer配置內容的容器 子節點:AllowEmptyReferer節點、RefererList節點 父節點:無 |
AllowEmptyReferer | 枚舉字元串 | 是 | 指定是否允許referer欄位為空的請求訪問。取值:
父節點:RefererConfiguration |
RefererList | 容器 | 是 | 保存referer訪問白名單的容器。 父節點:RefererConfiguration 子節點:Referer |
Referer | 字元串 | 否 | 指定一條referer訪問白名單。 父節點:RefererList |
細節分析
- 只有Bucket的擁有者才能發起Put Bucket Referer請求,否則返回403 Forbidden消息。錯誤碼:AccessDenied。
- AllowEmptyReferer中指定的配置將替換之前的AllowEmptyReferer配置,該欄位為必填項,系統中預設的AllowEmptyReferer配置為true。
- 此操作將用RefererList中的白名單列表覆蓋之前配置的白名單列表,當用戶上傳的RefererList為空時(不包含Referer請求元素),此操作會覆蓋已配置的白名單列表,即刪除之前配置的RefererList。
- 如果用戶上傳了Content-MD5要求標頭,OSS會計算body的Content-MD5並檢查一致性,如果不一致,將返回InvalidDigest錯誤碼。
樣本
不包含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 qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
<?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 qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=
<?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: 534B371674E88A4D8906008B
Date: Fri, 04 May 2012 03:21:12 GMT
Content-Length: 0
Connection: keep-alive
Server: AliyunOSS