GetObject
您可以使用 S3 GetObject 要求、從 S3 貯體擷取物件。
GetObject 和多部分物件
您可以使用 partNumber
request 參數擷取多部分或分割物件的特定部分。 `x-amz-mp-parts-count`回應元素會指出物件有多少部分。
您可以針對分割 / 多部分物件和非分割 / 非多部分物件、將其設 `partNumber`為 1 ;不過、 `x-amz-mp-parts-count`只有分割或多部分物件才會傳回回應元素。
使用者中繼資料中的UTF-8字元
在使用者定義的中繼資料中、無法剖析或解譯轉義的utf-8字元。StorageGRID如果金鑰名稱或值包含不可列印的字元、則取得使用者定義中繼資料中含有轉義式 UTF-8 字元的物件要求時、不會傳回 `x-amz-missing-meta`標頭。
支援的要求標頭
支援下列要求標頭:
-
x-amz-checksum-mode
:具體說明ENABLED
`Range`GetObject 不支援標頭 `x-amz-checksum-mode`。當您在啟用的要求 `x-amz-checksum-mode`中加入 `Range`時、 StorageGRID 不會傳回回應中的 Checksum 值。
不支援的要求標頭
不支援下列要求標頭並傳回 XNotImplemented
:
-
x-amz-website-redirect-location
版本管理
如果 versionId`未指定子資源、則作業會擷取版本控制庫中物件的最新版本。如果物件的目前版本是刪除標記、則會傳回「找不到」狀態、回應標頭會 `x-amz-delete-marker`設為 `true
。
使用客戶提供的加密金鑰(SSE-C)要求伺服器端加密標頭
如果物件是以您提供的唯一金鑰加密、請使用所有三個標頭。
-
x-amz-server-side-encryption-customer-algorithm
:指定AES256
。 -
x-amz-server-side-encryption-customer-key
:指定對象的加密密鑰。 -
x-amz-server-side-encryption-customer-key-MD5
:指定對象加密密鑰的 MD5 摘要。
您提供的加密金鑰永遠不會儲存。如果您遺失加密金鑰、就會遺失對應的物件。在使用客戶提供的金鑰來保護物件資料之前,請先檢閱中的考量事項"使用伺服器端加密"。 |
GetObject for Cloud Storage Pool 物件的行為
如果某個物件儲存在雲端儲存池中、且該物件的一個或多個複本也存在於網格上、則 GetObject 要求會嘗試從網格擷取資料、然後再從雲端儲存池擷取資料。 |
物件狀態 | GetObject 的行為 |
---|---|
物件擷取到StorageGRID 不經ILM評估、或儲存在傳統儲存資源池中的物件、或使用銷毀編碼 |
系統會擷取物件複本。 |
Cloud Storage Pool中的物件、但尚未轉換為無法擷取的狀態 |
系統會擷取物件複本。 |
物件移轉至無法擷取的狀態 |
使用"RestoreObject"要求將物件還原至可擷取的狀態。 |
正在從無法擷取的狀態還原的物件 |
等待 RestoreObject 要求完成。 |
物件已完全還原至雲端儲存資源池 |
系統會擷取物件複本。 |
雲端儲存資源池中的多部份或分段物件
如果您上傳了多個部分的物件、或StorageGRID 是將一個大型物件分割成多個區段、StorageGRID 則透過取樣物件的一部分或區段、決定該物件是否可在Cloud Storage Pool中使用。在某些情況下、當物件的某些部分已經轉換為無法擷取的狀態、或物件的某些部分尚未還原時、 GetObject 要求可能會錯誤傳回 200 OK
。
在這些情況下:
-
GetObject 要求可能會傳回一些資料、但中途停止傳輸。
-
隨後的 GetObject 要求可能會傳回
403 Forbidden
。