OpenStack Object Storage Developer Guide/Swift官方API文檔 — 翻譯 (五)

來源:互聯網
上載者:User

OK啦,這是最後一篇,其實從原官方文檔的組織上,該小節是3.3——container之後,object之前,為了API整體思路的連貫性,我自己擅作主張放到了最後一部分。這章是我覺得swift中比較有趣的一章,可以直接將swift配置成靜態網站,作為資料下載站,直接解決了靜態網站資料備份的問題。

於是,讓我們愉快的繼續吧 =D

 

3.3. 建立靜態網站(Create Static Website)

你可以使用swift賬戶在互連網上建立一個靜態網站。這種模式通常是匿名請求的,如果你希望在這種模式下使用認證請求,則需要在要求標頭中將 X-Web-Mode 設定為 TRUE。過濾器 staticweb 也應該添加到設定檔 /etc/swift/proxy-server.conf 中認證中介軟體後的管道上。staticweb 中介軟體的配置必需添加到pipeline後,如:

[DEFAULT]...[pipeline:main]pipeline = healthcheck cache tempauth staticweb proxy-server...[filter:staticweb]use = egg:swift#staticweb# Seconds to cache container x-container-meta-web-* header values.# cache_timeout = 300# You can override the default log routing for this filter here:# set log_name = staticweb# set log_facility = LOG_LOCAL0# set log_level = INFO# set access_log_name = staticweb# set access_log_facility = LOG_LOCAL0# set access_log_level = INFO# set log_headers = False

 

你的公用可讀的container應該包含 X-Container-Meta-Web-IndexX-Container-Meta-Web-Error 這兩個頭( X-Container-Meta-Web-Error 這個header將在後文“為靜態網站設定出錯頁”中討論)。

X-Container-Meta-Web-Index 用於指定網站的預設訪問頁(default頁,或者index.html檔案)。當一個使用者第一次進入你的網站時,他不需要指定特殊的index檔案,你的網站就會自動將index.html展示給他。如果你通過建立偽目錄的方式為你的網站建立了子目錄,則每個子目錄的預設訪問頁的名稱都將是X-Container-Meta-Web-Index 指定的頁面。如果你的偽目錄中不包含一個同X-Container-Meta-Web-Index 指定的頁面名字相同的index file,則當使用者訪問這個子目錄時,將會返回一個404錯誤。

你也可以選擇展示子目錄中的檔案清單,而非一個網頁。如果要實現展示子目錄中的檔案清單功能,只需將頭 X-Container-Meta-Web-Listtings 設定為 TRUE。你可以通過設定 X-Container-Meta-Web-Listings-CSS 為你的檔案清單添加樣式(如lists.css)。

 

3.3.1. 通過Swift實現的靜態網頁中介軟體(Static Web Middleware via swift)

  例3.38. 設定Container為公用可讀的

  設定Container為公用可讀的。一旦container被設定成公用可讀的,那麼你可以直接存取的容器中的對象,但是你需要為網站的主URL(即container的URL)和它的子目錄設定index file。

swift post -r '.r:*' container

  例3.39. 佈建網站的Index檔案

  佈建網站的Index檔案。在這個例子中,index.html是網站的預設訪問頁。

swift post -m 'web-index:index.html' container

  例3.40. 啟用檔案清單

  啟用檔案清單。如果你沒有設定index檔案,則要將container中的對象列表展示出來。設定樣式的命令在下一個例子中。

swift post -m 'web-listings: true' container

  例3.41. 為檔案清單設定CSS樣式

  為檔案清單設定樣式。

swift post -m 'web-listings-css:listings.css' container

 

3.3.2. 為靜態網站設定出錯頁(Set Error Pages for Static Website)

你可能需要為你的網站設定自訂的錯誤頁。目前,只支援401(Unauthorized)和404(Not Found)這兩個錯誤。為了實現自訂錯誤頁,你需要設定中繼資料頭 X-Container-Meta-Web-Error

真正的錯誤頁根據 狀態代碼 和你所設定的 X-Container-Meta-Web-Error名稱 來決定。例如,你將 X-Container-Meta-Web-Error 設定為 error.html,則當出現401錯誤時,將會展示 401error.html 頁面,類似的,當出現404錯誤時,將會展示 404error.html 頁面。在你設定為container設定 X-Container-Meta-Web-Error 後,你可以為這兩種錯誤分別建立錯誤頁,也可以不建立,讓他們訪問公用的錯誤頁。

你只需要為整個網站設定一次 X-Container-Meta-Web-Error 即可。

  例3.42. 為文靜態網站設定錯誤頁

swift post -m 'web-error:error.html' container

任何一個2xx的響應都表示執行成功了。

 

 

至此,OpenStackObject Storage Service的官方API算是翻譯完成啦!不要問我第1章和第4章,我是死活都不會翻的!第4章主要是使用cURL與swift互動的介紹,比較直接,沒太多需要理解的東西,自己看看就好,不要懶哦 =P

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.