全部產品
Search
文件中心

Object Storage Service:鏡像回源配置樣本

更新時間:Jun 19, 2024

本文介紹幾種特殊情境下的鏡像回源配置樣本。

樣本一

客戶A在華東1(杭州)地區建立了bucket-01,需實現如下情境:

  • 當要求者訪問examplefolder目錄中不存在的檔案時,可以從https://example.com網站的destfolder目錄中回源檔案。

  • 需要檢查回源檔案的MD5值,MD5值不匹配的檔案不在bucket-01中儲存。

要滿足以上情境需求,請按如下步驟配置鏡像回源規則:

  1. 登入OSS管理主控台

  2. 單擊Bucket 列表,然後單擊目標Bucket名稱。

  3. 在左側導覽列,選擇資料管理 > 鏡像回源

  4. 鏡像回源頁面,單擊建立規則

  5. 建立規則面板,按以下說明配置必要參數,其他參數保留預設配置。

    參數

    配置

    回源類型

    選中鏡像

    回源條件

    選中檔案名稱首碼,並設定為examplefolder/

    替換或截取首碼

    選中是否替換或截取首碼,並設定為destfolder/

    說明

    該選項僅在設定了回源條件中的檔案名稱首碼後顯示。

    回源地址

    第一列設定為https,第二列設定為example.com,第三列置空。

    檢查MD5

    選中是否檢查MD5

    當回源請求中返回的response包含Content-MD5欄位時,OSS會檢查回源檔案的MD5值與Content-MD5欄位值是否匹配。

    • 匹配:用戶端將擷取檔案,且OSS儲存回源檔案。

    • 不匹配:由於計算MD5需要完整的檔案資料,而此時檔案已經透傳回用戶端,所以用戶端能擷取到檔案,但OSS不會儲存回源檔案。

  6. 單擊確定

    以上規則配置完成後訪問流程如下:

    1. 要求者首次訪問https://bucket-01.oss-cn-hangzhou.aliyuncs.com/examplefolder/example.txt

    2. 如果bucket-01中不存在examplefolder/example.txt檔案,則OSS向https://example.com/destfolder/example.txt請求檔案。

    3. 擷取到目標檔案後,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請求響應策略

    選中跟隨來源站點重新導向請求

以上規則配置完成後訪問流程如下:

  1. 要求者首次訪問https://bucket-02.oss-cn-beijing.aliyuncs.com/dir1/example.txt

  2. 如果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,並返回給要求者。

  3. 如果要求者訪問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中攜帶的header1header2header3三個HTTP header傳遞到來源站點。

要滿足以上情境需求,請參照樣本一中的操作指引配置以下鏡像回源規則:

參數

配置

回源類型

選中鏡像

回源條件

選中檔案名稱首碼,並設定為examplefolder/

來源站點類型

選中回源OSS私人Bucket,並在回源Bucket下拉式清單選擇bucket-04。

說明

配置來源站點類型時,OSS會在RAM服務中產生AliyunOSSMirrorDefaultRole角色,並授予該角色唯讀訪問所有Bucket的許可權(AliyunOSSReadOnlyAccess)。

回源地址

第一列設定為https,其他置空。

回源參數

選中攜帶請求字串

OSS會將URL請求中的query string傳遞到來源站點。

設定HTTP header路由規則

選中傳遞指定HTTP header參數,並添加header1header2header3三個HTTP header。

回源規則不支援傳遞部分標準HTTP header,例如authorizationauthorization2rangecontent-lengthdate等,以及以x-oss-oss-x-drs-開頭的HTTP header。

重要

回源私人Bucket時,請勿選擇傳遞所有HTTP header參數,否則會導致回源失敗。

以上規則配置完成後訪問流程如下:

  1. 要求者首次訪問https://bucket-03.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss

  2. 如果bucket-03中不存在examplefolder/example.png檔案,則OSS會向https://bucket-04.oss-cn-shanghai.aliyuncs.com/examplefolder/example.png?caller=lucas&production=oss請求檔案。

  3. bucket-04會根據傳遞的?caller=lucas&production=oss參數,將example.png返回給OSS。

  4. OSS會將擷取的檔案命名為examplefolder/example.png,並將命名後的檔案儲存體至bucket-03。

如果請求中還攜帶了header1header2header3的HTTP header時,也會被傳遞到bucket-04。