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


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的響應都表示執行成功了。

 

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM