閱讀99 返回首頁    go iPhone_iPad_Mac_手機_平板_蘋果apple


管理回源設置__管理文件_開發人員指南_對象存儲 OSS-阿裏雲

通過回源設置,對於獲取數據的請求以多種方式進行回源讀取,滿足您對於數據熱遷移、特定請求重定向等需求。

通過規則的方式,對每條到OSS的Get請求的url進行匹配,然後按照特定的方式進行回源。規則最多配置5條,順序匹配,直到匹配到有效規則。回源類型分為鏡像方式和重定向的方式。

鏡像方式

如果配置了鏡像回寫,則當Get一個不存在的文件時,會向源地址請求這個文件,返回給用戶,並同時寫入到OSS。

使用場景

鏡像回寫主要用於無縫遷移數據到OSS,即服務已經在自己建立的源站或者在其他雲產品上運行,需要遷移到OSS上,但是又不能停止服務,此時可利用鏡像回寫功能實現。具體場景分析如下:

  • 源站有一批冷數據,同時在不斷的生成新的熱數據。
    可以先通過遷移工具將冷數據遷移到OSS上,遷移工具為ossimport2,同時配置鏡像回寫,將源站的地址配置到OSS上。當將域名切換到OSS上(或者阿裏雲的CDN,回源到OSS),就算有一部分新生成的數據沒有遷移過來,依然可以在OSS上正常訪問到,且訪問一次後文件就會存入到OSS。域名切換後,源站已經沒有新的數據產生了,此時再掃描一次,將還沒有導過來的數據一次性導入到OSS,然後將鏡像回寫配置刪除。
    如果配置的源站是IP,那麼將域名遷移到OSS後還可以繼續鏡像到源站,但是如果配置的是一個域名,由於域名本身會解析到OSS或者CDN,那麼鏡像就失去作用了,在這種情況下,可以另外申請一個域名作為鏡像的源站,這個域名與正在服務的域名解析到同一個IP,這樣服務域名遷移的時候就可以繼續鏡像到源站了。

  • 隻切換源站的部分流量到OSS或者CDN,源站本身還在不斷的產生數據。
    遷移方式與上述方式類似,隻是流量切換到OSS後,不要將鏡像回寫的配置刪掉,這樣可以保證切換到OSS或者CDN的流量還是能夠拿到源站的數據。

使用細則

  • 隻有當GetObject()本應該返回404的情況下,OSS才會執行鏡像回寫,向源站請求文件
  • 向源站請求的url為MirrorURL+object,回寫到OSS的文件名為“object”,例如bucket為example-bucket,配置了鏡像回寫,MirrorURL為https://www.example-domain.com/,文件image/example_object.jpg不在這個bucket裏麵,此時去下載這個文件時,OSS將向https://www.example-domain.com/image/example_object.jpg發起GET請求,並將結果同時返回給用戶以及寫入到OSS,當下載完成後,這個文件就已經存在OSS上了,文件名為image/example_object.jpg,此時相當於將源站的文件同名的遷移到了OSS上。如果MirrorURL帶有path信息,比如https://www.example-domain.com/dir1/,其他與上例相同,那麼OSS回源的url為https://www.example-domain.com/dir1/image/example_object.jpg,寫入到OSS的object依然是image/example_object.jpg,此時相當於將源站的某一個目錄下的文件遷移到OSS上。
  • 傳給OSS的header信息以及querystring信息不會傳遞給源站。
  • 如果源站是chunked編碼返回,那麼OSS返回給用戶的也是chunked編碼。
  • OSS會將源站的以下頭信息返回並存為OSS的頭信息:
    1. Content-Type
    2. Content-Encoding
    3. Content-Disposition
    4. Cache-Control
    5. Expires
    6. Content-Language
    7. Access-Control-Allow-Origin
  • 通過鏡像回寫的文件會添加一個回應頭x-oss-tag,值為“MIRROR” + 空格 + url_decode(回源URL),以上例為例,則為x-oss-tag:MIRROR http%3a%2f%2fwww.example-domain.com%2fdir1%2fimage%2fexample_object.jpg。文件回寫到OSS上後,隻要文件不被重新覆蓋,每次下載這個文件都會添加這個頭部,用於表示這個文件來源於鏡像。
  • 假設文件已經通過鏡像回寫到了OSS,如果源站的相同文件發生了變化,那OSS不會更新已經存在於OSS上的文件,因為此時文件已經在OSS上,不符合鏡像回寫的條件了。
  • 如果鏡像源也不存在此文件,即鏡像源返回給OSS的http status為404,那麼OSS也返回404給用戶,如果是其他非200的狀態碼(包括因為網絡原因等獲取不到文件的錯誤情況),OSS將返回用戶424,錯誤碼為“MirrorFailed”。

重定向

URL重定向功能的作用是根據用戶設置的條件,以及相應的跳轉的配置,向用戶返回一個3xx跳轉。用戶可以利用這種跳轉的功能對文件做重定向以及在此基礎之上的各種業務。其流程如下:

使用場景

  • 其他數據源向OSS的無縫遷移。
    用戶異步的從自己的數據源向OSS遷移數據,在此過程中未遷移到OSS的數據通過URL rewrite的方式返回給用戶一個302重定向請求,用戶的客戶端根據302中的Location從自己的數據源讀回數據。
  • 配置頁麵跳轉功能。
    比如用戶希望隱藏自己的某些前綴開頭的object,給訪問者返回一個特殊的頁麵。
  • 配置發生404、或者500錯誤時的跳轉頁麵。
    發生以上錯誤的時候用戶可以看到一個預先設定的頁麵,不至於係統發生錯誤的時候向用戶完全暴露OSS的錯誤。

功能使用參考

最後更新:2016-11-23 16:04:09

  上一篇:go 管理跨區域複製__管理文件_開發人員指南_對象存儲 OSS-阿裏雲
  下一篇:go 設置訪問日誌記錄__安全管理_開發人員指南_對象存儲 OSS-阿裏雲