存儲桶(Bucket)是存儲文件(Object)的容器。對象存儲系統的每個文件(Object)都必須包含在一個存儲桶中。對象存儲提供的是基于桶和文件的扁平化存儲方式,桶中的所有文件都處于同一邏輯層級,去除了文件系統中的多層級樹形目錄結構。
您可以設置存儲桶的屬性,用來控制數據存儲位置、訪問權限、生命周期等,這些屬性設置直接作用于該存儲桶內的所有文件,因此您可以通過靈活的屬性設置,來創建不同的存儲桶,完成不同的管理功能。每個用戶最多可以建立10個存儲桶。用戶只有對存儲桶擁有相應的權限,才可以對其進行操作,這樣保證了數據的安全性,防止非授權用戶的非法訪問。
存儲桶屬性
OOS提供Bucket級別的權限控制,默認情況下,只有Bucket的創建者才有該Bucket的讀寫權限。用戶也可以設置其他的訪問策略,比如對一個Bucket可以設置公共讀策略,允許所有人對其都有讀權限。
Bucket目前有3種訪問權限:私有、公共讀、公共讀寫。各自的含義如下:
- 私有:只有根用戶和具有相應權限的子用戶可以對該存儲桶內的文件進行讀/寫/刪除操作(包括Get、Put和Delete Object),其他人(包括匿名訪問)只有通過Bucket Policy授權或分享鏈接才可訪問該存儲桶內的文件。
- 公共讀:只有根用戶和具有相應權限的子用戶可以對該存儲桶內的文件進行寫/刪除操作(包括Put和Delete Object)。任何人(包括匿名訪問)都可以對該存儲桶內的文件進行讀操作,這有可能造成您數據的外泄以及費用激增,請慎用該權限。
- 公共讀寫:任何人(包括匿名訪問)都可以對該存儲桶內的文件進行讀/寫/刪除操作(包括Get、Put和Delete Object)。
注意配置公共讀寫權限可能造成您數據的外泄以及費用激增,若被人惡意寫入違法信息還可能會侵害您的合法權益,除特殊場景外,不建議您配置公共讀寫權限。如果想使用訪問權限為公共讀寫的存儲桶,請聯系天翼云客服評估審核后開通此功能。
區域屬性
OOS的資源池分布在全國多個省、市、自治區及直轄市的資源池,這些資源池間的存儲桶(Bucket)、文件(Object)、訪問密鑰(AccessKeyID和SecretAccessKey)信息互通,可以實現全國數據的就近讀取和寫入。你可以通過設置區域屬性,選擇存放數據的地域。
注意創建存儲桶(Bucket)時選擇的數據位置和調度策略可以在此進行修改,索引位置無法進行修改。 如果您可見的數據位置只有一個,那么也無法修改。
安全策略
安全策略定義OOS資源的訪問權限,作用于所配置的存儲桶及存儲桶內文件。OOS存儲桶擁有者通過安全策略可為IAM用戶或其他帳號授權存儲桶及存儲桶內文件的操作權限,具體包括:
- 允許/拒絕Bucket級別的權限。
- 允許/拒絕Object級別的權限。
存儲桶的安全策略是由效果、被授權用戶、資源、動作和條件5個桶策略基本元素共同決定,詳見Bucket Policy元素。
防盜鏈
為了避免惡意程序或者不良網站使用OOS內的資源URL去盜刷公網流量或者盜用資源,增加用戶使用成本,因此產生了防盜鏈技術,防止用戶的數據被其他人盜鏈。
OOS支持基于HTTP Header中表頭字段Referer的防盜鏈方法,通過檢測數據請求的來源網頁來限制Bucket內資源的訪問權限,避免Bucket內的資源被其他人盜用。OOS同時支持訪問白名單和訪問黑名單的設置。
說明OOS的防盜鏈功能是通過安全策略來實現的。
網站
OOS支持通過靜態網站托管功能,將您的靜態網站托管到OOS的存儲桶(Bucket),并使用Bucket的訪問域名訪問這個網站。您也可以通過網站設置,使用已經備案的靜態網站域名訪問存放在Bucket內的數據。
您需要為存儲桶綁定已通過備案的自定義域名(請聯系天翼云客服評估審核后綁定),然后在域名管理系統中添加CNAME記錄,并通過自定義域名進行網站的訪問。
將網站的所有文件(html、CSS、js、圖片等)上傳到開通了靜態網站托管功能的Bucket中, 注意要保持文件之間的相對路徑,該路徑會影響用戶使用自定義域名訪問時的訪問路徑。
例如,將Bucket綁定了自定義域名your**domain.com,且配置的靜態網站默認首頁為index.html,默認錯誤頁為error.html,并且上傳了文件 example.html到Bucket下的 test 目錄下,當您訪問//your**domain.com/test/example.html時,對應的訪問頁面為Bucket下的test/example.txt文件。
注意
OOS自有網站托管域名不支持HTTPS訪問,用戶自定義域名支持HTTPS訪問。
如果配置靜態網站托管后,當匿名用戶直接訪問Bucket的域名,會將靜態網站文件下載到本地。如果要實現訪問靜態網站時是預覽網站內容,而非下載靜態網站文件,靜態網站域名須是Bucket綁定的已備案自定義域名,為Bucket綁定自定義域名請聯系天翼云客服申請。
盡量避免目標Bucket名中帶有“.”,否則通過HTTPS訪問時可能出現客戶端校驗證書出錯。
日志
出于分析或審計等目的,用戶可以開啟日志功能,用于把存儲桶的各類訪問請求記錄成日志,并將生成的日志文件寫入用戶指定的桶中。
生成的日志文件會保存在指定的存儲桶中,占用存儲空間,因此會產生存儲費用。默認情況下,OOS不會為用戶的存儲桶收集訪問日志。
生命周期
生命周期管理支持通過配置指定的規則,定期將存儲桶內的文件(Object)轉儲為指定存儲類型,或者將過期的文件刪除,從而節省存儲費用。
注意
如果存儲桶沒有配置過生命周期規則,執行該操作將創建新的生命周期規則。
如果存儲桶內的生命周期規則正在執行時被修改配置,則修改后的配置并不立即生效,需等原生命周期規則執行完成后才能生效。
每個存儲桶最多創建1000條生命周期規則。
同一存儲桶,同一類型(到期刪除或者到期轉成低頻訪問存儲)的生命周期規則不能存在疊加前綴,例如已創建到期刪除文件的生命周期規則的前綴是ABC,則無法再創建前綴為ABCD或AB或A的到期刪除文件的生命周期規則。
當用戶為存儲桶設置了生命周期規則,這些規則將同時應用于已有文件和后續新創建的文件。例如,用戶今天增加了一個生命周期,指定過期時間為30天,那么OOS將會將最后修改時間在30天前的文件都加入到待刪除隊列中。
跨域設置
跨域資源共享(Cross Origin Resource Sharing,CORS)是由W3C標準化組織提出的一種網絡瀏覽器的規范機制,定義了一個域中加載的客戶端Web應用程序與另一個域中的資源交互的方式。而在通常的網頁請求中,由于同源安全策略(Same Origin Policy,SOP,同協議、同域名或IP、以及同端口視為同源)的存在,不同域之間的網站腳本和內容是無法進行交互的。例如,當來自于A網站的頁面中的JavaScript代碼希望訪問B網站的時候,瀏覽器會拒絕該訪問,因為A、B兩個網站是屬于不同的域。
OOS支持配置CORS規范,定義了客戶端Web應用程序在一個域中與另一個域中的資源進行交互的方式,允許跨域請求訪問OOS中的資源。
注意
每個Bucket最多可以配置100條跨域規則。
當OOS收到一個跨域請求(或者OPTIONS請求)時,會讀取Bucket對應的CORS規則,然后進行相應的權限檢查。OOS會依次檢查每一條規則,使用第一條匹配的規則來允許請求并返回對應的Header。如果所有規則都匹配失敗,則不附加任何CORS相關的Header。
合規保留
OOS支持WORM(Write Once Read Many)特性,允許用戶以“不可刪除、不可篡改”方式保存和使用數據。當開啟合規保留策略后,您可以在存儲桶中上傳和讀取文件(Object),但是在Object的保留時間到期之前,任何用戶都無法刪除Object和策略。Object的保留時間到期后,才可以刪除Object。
注意
合規保留一旦開啟,不能關閉,不能縮短合規保留時長,但可以延長合規保留時長。
合規保留的時間精確到秒,例如對Bucket A設置合規保留時長為10天,文件A1屬于Bucket A,A1的最后更新時間為2019-3-1 12:00:00,該文件會在2019-3-11 12:00:01過合規保留期。
任何用戶(包括根用戶)都不能修改、覆蓋、刪除處于合規保留期的文件。
處于合規保留期的文件,無法通過調用API、控制臺修改文件的存儲類型,只能通過設置的生命周期規則修改存儲類型。
文件處于合規保留期:如果生命周期規則為修改文件存儲類型,則生命周期規則可以生效;如果生命周期規則為到期刪除文件,則文件必須過了合規保留期后,生命周期規則才能生效。在客戶銷戶、欠費超期情況下,合規保留未到期數據會被刪除而不做保留。
清單配置
通過OOS Bucket清單功能可以獲取Bucket中指定文件(Object)的大小、存儲類型等信息。相對于GET Bucket (List Objects)接口,Bucket清單可以按每天或者每周以CSV的形式輸出指定文件的相關信息,且不會影響Bucket的請求速率。在需要列舉海量Object的場景中,推薦使用Bucket清單功能。