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)

表 1. 請求元素
名稱 類型 是否必需 描述
RefererConfiguration 容器 保存Referer配置內容的容器

子節點:AllowEmptyReferer節點、RefererList節點

父節點:無

AllowEmptyReferer 枚舉字元串 指定是否允許referer欄位為空的請求訪問。取值:
  • true (預設值)
  • false

父節點: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