上傳資料

將儲存空間組織成儲存區之後,現在可以透過上傳資料來新增部分物件。

取決於想要的儲存空間使用方式,有不同的方法可以讓資料進入系統。 資料科學家有幾個用於分析的大型檔案、系統管理者需要讓資料庫備份與本端檔案保持同步,開發人員則是撰寫需要讀取及寫入數百萬個檔案的軟體。 所有這些情境都由不同的資料汲取方法提供最佳服務。

某些應用程式可能希望限制使用者或服務 ID 僅能上傳資料,而無法讀取儲存桶中的任何資料。 這可以透過「物件撰寫者」IAM 角色 來達成。

使用主控台

一般而言,使用 Web 型主控台不是使用 Object Storage 的最常見方式。 物件限制為 200 MB,而且檔名及索引鍵相同。 可以同時上傳多個物件,如果瀏覽器容許多個執行緒,則會平行使用多個組件來上傳每個物件。 Aspera 高速傳送支援較大的物件大小及改良的效能(視網路因素而定)。

使用相容工具

部分使用者想要使用獨立式公用程式來與其儲存空間互動。 由於 Cloud Object Storage API 支援最常見的一組 S3 API 操作,許多 S3-compatible 工具亦可透過 HMAC 憑證連線至 Object Storage。

部分範例包括 CyberduckTransmit 這類檔案瀏覽器、CloudberryDuplicati 這類備份公用程式、s3cmdMinio Client 這類指令行公用程式等等。 您也可以搜尋 IBM Cloud 目錄,尋找可讓您將資料移至 Cloud Object Storage 的第三方服務,例如 Lyve 資料傳輸服務

使用 API

Object Storage 的大部分程式化應用程式都使用 SDK(例如 Javanode.jsPython)或 Cloud Object Storage API。 一般而言,會透過多個組件上傳物件,而且組件大小及組件數目是透過「傳送管理員」類別所配置。

條件式要求

提出讀取或寫入資料的要求時,可以對該要求設定條件,以避免不必要的作業。 這是透過使用以下預條件 HTTP 標頭來實現的:If-MatchIf-None-MatchIf-Modified-Since 以及 If-Unmodified-Since

一般來說,建議使用 If-Match ,因為 Last-Modified 的精確度僅以秒為單位,在某些應用程式中可能不足以避免競態條件。

使用 If-Match

在物件的 PUT、HEAD 或 GET 請求中,If-Match 標頭會 檢查所提供的 Etag (即物件內容的 MD5 雜湊值)是否與所提供的 Etag 值相符。 若此值相符,則操作將繼續進行。 若比對失敗,系統將回傳 412 Precondition Failed 錯誤。

If-Match 最常與狀態變更方法 (例如 POST、PUT、DELETE) 搭配使用,以防止在多個使用者代理程式可能平行作用於相同資源時意外改寫 (亦即,防止「遺失更新」問題)。

使用 If-None-Match

在物件的 PUT、HEAD 或 GET 請求中,If-None-Match 標頭會 檢查所提供的 Etag (即物件內容的 MD5 雜湊值)是否與所提供的 Etag 值相符。 若此值不符,則操作將繼續進行。 若比對成功,系統會在執行 PUT 請求時回傳「412 Precondition Failed」錯誤,而在執行 GET 或 HEAD 請求時回傳「304 Not Modified」。

If-None-Match 主要用於條件式 GET 要求中,以啟用快取資訊的有效更新,且具有最小交易額外負擔量。 當用戶端想要更新有實體標籤的一或多個儲存回應時,用戶端應該在提出 GET 要求時產生 If-None-Match 標頭欄位,其中包含那些實體標籤的清單; 這可讓收件者伺服器傳送 304 (未修改) 回應,以指出其中一個儲存回應何時符合選取的表示法。

使用 If-Modified-Since

在物件的 HEAD 或 GET 請求中,If-Modified-Since 標頭 會檢查該物件的 Last-Modified 值(例如 Sat, 14 March 2020 19:43:31 GMT )是否比所提供的值更新。 如果該物件已遭修改,則操作將繼續進行。 若該物件未經修改,系統將傳回 304 Not Modified

If-Modified-Since 通常用於兩個不同的用途: 1) 容許有效更新沒有實體標籤的快取表示法,以及 2) 將 Web 遍訪的範圍限制為最近變更的資源。

使用 If-Unmodified-Since

在物件的 PUT、HEAD 或 GET 請求中,If-Unmodified-Since 標頭 會檢查該物件的 Last-Modified 值(例如 Sat, 14 March 2020 19:43:31 GMT )是否等於或早於所提供的值。 如果該物件尚未被修改,則操作將繼續進行。 若 Last-Modified 的值較新,系統會在執行 PUT 請求時回傳 412 Precondition Failed 錯誤,而在執行 GET 或 HEAD 請求時回傳 304 Not Modified 錯誤。

If-Unmodified-Since 最常與狀態變更方法 (例如 POST、PUT、DELETE) 搭配使用,以防止在多個使用者代理程式可能平行作用於未提供實體標籤及其表示法的資源時意外改寫 (亦即,防止「遺失更新」問題)。 如果選取的表示法不符合先前要求中已儲存 (或部分儲存) 的表示法,也可以使用安全方法來中斷要求。

搜尋與篩選物件

使用 Object Storage 主控台,可根據名稱、大小、日期或副檔名來搜尋及篩選物件。 如需更多詳細資訊,請參閱「在使用者介面中搜尋和篩選物件」。