本文介紹幾種特殊場景下的鏡像回源配置示例。
示例一
客戶A在華東1(杭州)地域創建了bucket-01,需實現如下場景:
當請求者訪問examplefolder目錄中不存在的文件時,可以從
https://example.com
站點的destfolder目錄中回源文件。需要檢查回源文件的MD5值,MD5值不匹配的文件不在bucket-01中保存。
要滿足以上場景需求,請按如下步驟配置鏡像回源規則:
登錄OSS管理控制臺。
單擊Bucket 列表,然后單擊目標Bucket名稱。
在左側導航欄,選擇 。
在鏡像回源頁面,單擊創建規則。
在創建規則面板,按以下說明配置必要參數,其他參數保留默認配置。
參數
配置
回源類型
選中鏡像。
回源條件
選中文件名前綴,并設置為examplefolder/。
替換或截取前綴
選中是否替換或截取前綴,并設置為destfolder/。
說明該選項僅在設置了回源條件中的文件名前綴后顯示。
回源地址
第一列設置為https,第二列設置為example.com,第三列置空。
檢查MD5
選中是否檢查MD5。
當回源請求中返回的response包含Content-MD5字段時,OSS會檢查回源文件的MD5值與Content-MD5字段值是否匹配。
匹配:客戶端將獲取文件,且OSS保存回源文件。
不匹配:由于計算MD5需要完整的文件數據,而此時文件已經透傳回客戶端,所以客戶端能獲取到文件,但OSS不會保存回源文件。
單擊確定。
以上規則配置完成后訪問流程如下:
請求者首次訪問
https://bucket-01.oss-cn-hangzhou.aliyuncs.com/examplefolder/example.txt
。如果bucket-01中不存在examplefolder/example.txt文件,則OSS向
https://example.com/destfolder/example.txt
請求文件。獲取到目標文件后,OSS進行以下操作:
如果回源請求中返回的response包含Content-MD5字段,OSS會計算回源文件的MD5值,并與Content-MD5字段進行匹配。MD5匹配通過則將文件重命名為examplefolder/example.txt后保存到bucket-01,并將文件返回給請求者;匹配不通過時僅返回文件給用戶,不保存該文件到bucket-01。
如果回源請求中返回的response不包含Content-MD5字段,OSS將文件重命名為examplefolder/example.txt后保存到bucket-01,并將文件返回給請求者。
示例二
客戶B在華北2(北京)地域創建了bucket-02,擁有源站A(https://example.com
)、源站B(https://example.org
)兩個目錄一致的站點,需實現如下場景:
當請求者訪問bucket-02/dir1目錄中不存在的文件時,從
https://example.com
站點的example1目錄中獲取。當請求者訪問bucket-02/dir2目錄中不存在的文件時,從
https://example.org
站點的example2目錄中獲取。根據源站A和源站B是否設置重定向策略,決定是否向重定向指定的地址請求文件。
要滿足以上場景需求,請參照示例一中的操作指引配置以下兩條鏡像回源規則:
規則一:
參數
配置
回源類型
選中鏡像。
回源條件
選中文件名前綴,并設置為dir1/。
替換或截取前綴
選中是否替換或截取前綴,并設置為example1/。
說明該選項僅在設置了回源條件中的文件名前綴后顯示。
回源地址
第一列設置為https,第二列設置為example.com,第三列置空。
3xx請求響應策略
選中跟隨源站重定向請求。
說明未選中跟隨源站重定向請求時,OSS會直接將源站重定向規則指定的地址返回給請求者。
規則二:
參數
配置
回源類型
選中鏡像。
回源條件
選中文件名前綴,并設置為dir2。
替換或截取前綴
選中是否替換或截取前綴,并設置為example2/。
說明該選項僅在設置了回源條件中的文件名前綴后顯示。
回源地址
第一列設置為https,第二列設置為example.org,第三列置空。
3xx請求響應策略
選中跟隨源站重定向請求。
以上規則配置完成后訪問流程如下:
請求者首次訪問
https://bucket-02.oss-cn-beijing.aliyuncs.com/dir1/example.txt
。如果bucket-02下dir1目錄中不存在example.txt文件,則OSS向
https://example.com/example1/example.txt
請求文件。如果源站A針對example1/example.txt設置了重定向規則,則OSS會向源站重定向規則指定的地址重新發起請求,獲取到文件后會將文件命名為dir1/example1/example.txt保存至bucket-02,并返回給請求者。
如果源站A未針對example1/example.txt設置重定向規則,則OSS獲取到文件后會將文件命名為dir1/example1/example.txt保存至bucket-02,并返回給請求者。
如果請求者訪問
https://bucket-02.oss-cn-beijing.aliyuncs.com/dir2/example.txt
,則通過鏡像回源規則獲取的文件將存儲在bucket-02的dir2/example2目錄。
示例三
客戶C在華東2(上海)地域創建了bucket-03和bucket-04兩個Bucket。其中,bucket-03為公共讀,bucket-04為私有,需實現如下場景:
當請求者bucket-03根目錄下examplefolder目錄中不存在的文件時,可以從bucket-04的examplefolder目錄中獲取目標文件。
允許將請求URL中攜帶的query string傳遞到源站。
允許將請求URL中攜帶的
header1
、header2
、header3
三個HTTP header傳遞到源站。
要滿足以上場景需求,請參照示例一中的操作指引配置以下鏡像回源規則:
參數 | 配置 |
回源類型 | 選中鏡像。 |
回源條件 | 選中文件名前綴,并設置為examplefolder/。 |
源站類型 | 選中回源OSS私有Bucket,并在回源Bucket下拉列表選擇bucket-04。 說明 配置源站類型時,OSS會在RAM服務中生成 |
回源地址 | 第一列設置為https,其他置空。 |
回源參數 | 選中攜帶請求字符串。 OSS會將URL請求中的query string傳遞到源站。 |
設置HTTP header傳遞規則 | 選中傳遞指定HTTP header參數,并添加header1、header2、header3三個HTTP header。 回源規則不支持傳遞部分標準HTTP header,例如 重要 回源私有Bucket時,請勿選擇傳遞所有HTTP header參數,否則會導致回源失敗。 |
以上規則配置完成后訪問流程如下:
請求者首次訪問
https://bucket-03.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
。如果bucket-03中不存在examplefolder/example.png文件,則OSS會向
https://bucket-04.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss
請求文件。bucket-04會根據傳遞的
?caller=lucas&production=oss
參數,將example.png返回給OSS。OSS會將獲取的文件命名為examplefolder/example.png,并將命名后的文件存儲至bucket-03。
如果請求中還攜帶了header1、header2、header3的HTTP header時,也會被傳遞到bucket-04。