Skip to main content
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

StorageGRID 中的 S3 儲存貯體作業和實作詳細資料

貢獻者 netapp-pcarriga netapp-lhalbert netapp-perveilerk netapp-jsnyder

StorageGRID 系統為每個 S3 租戶帳戶支援最多 20,000 個儲存桶。

每個網格最多可有 100,000 個貯體。

如果多個租戶各自擁有最多 5,000 個儲存桶,則網格中的每個 Storage Node 必須至少有 64 GB 的 RAM。

儲存桶名稱限制遵循 AWS 美國標準區域限制,但為了支援 S3 虛擬託管式請求,您應該進一步將其限制為 DNS 命名慣例。

更多資訊請參考以下內容:

ListObjects(取得 Bucket)和 ListObjectVersions(取得 Bucket 物件版本)操作支援StorageGRID"一致性值"

您可以檢查是否已為各個儲存桶啟用或停用上次存取時間更新。請參閱"取得時段上次存取時間"

下表說明StorageGRID 了為什麼由Ss哪些 人執行S3 REST API貯體作業。若要執行上述任何作業、必須為帳戶提供必要的存取認證資料。

營運 實作

建立庫位

建立新的貯體。建立貯體後、您就成為了貯體的擁有者。

注意:不支援 S3 目錄儲存桶。

  • 庫位名稱必須符合下列規則:

    • 必須在各個StorageGRID 方面都是獨一無二的(不只是租戶帳戶內的獨特功能)。

    • 必須符合DNS規範。

    • 必須包含至少 3 個字元、不得超過 63 個字元。

    • 可以是一或多個標籤的系列、相鄰的標籤以句點分隔。每個標籤都必須以英文字母或數字開頭和結尾、而且只能使用英文字母、數字和連字號。

    • 不得看起來像是文字格式的IP位址。

    • 不應在虛擬託管樣式要求中使用期間。期間會導致伺服器萬用字元憑證驗證發生問題。

  • 根據預設、會在區域中建立貯 us-east-1`體;不過、您可以使用 `LocationConstraint`要求主體中的 request 元素來指定不同的區域。使用該元素時 `LocationConstraint、您必須指定使用 Grid Manager 或 Grid Management API 定義的確切區域名稱。如果您不知道應該使用的地區名稱、請聯絡您的系統管理員。

    注意:如果您的 CreateBucket 要求使用了 StorageGRID 中未定義的區域,則會發生錯誤。

  • 您可以透過新增 `x-amz-bucket-object-lock-enabled`請求標頭來建立啟用了 S3 物件鎖定的儲存桶。請參閱"使用 S3 REST API 來設定 S3 物件鎖定"

    S3 Object Lock 需要儲存桶版本控制,當您建立啟用了 S3 Object Lock 的儲存桶時,此功能會自動啟用。

    您可以在建立儲存桶時或稍後啟用 S3 物件鎖定。

刪除Bucket

刪除貯體。

刪除 BucketCors

刪除貯體的 CORS 組態。

刪除 BucketEncryption

刪除儲存區中的預設加密。現有的加密物件會保持加密狀態、但新增至儲存庫的任何新物件都不會加密。

刪除 BucketLifecycle

從儲存桶中刪除生命週期組態。請參閱"建立S3生命週期組態"

刪除BucketPolicy

刪除附加至貯體的原則。

刪除 BucketReplication

刪除附加至貯體的複寫組態。

刪除 Bucketagging

使用 `tagging`子資源從貯體中移除所有標記。

注意:如果此儲存桶設定了非預設的 ILM 原則標籤,則會有一個 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤並已賦值。如果存在 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤,請勿發出 DeleteBucketTagging 要求。而應發出僅包含 `NTAP-SG-ILM-BUCKET-TAG`標籤及其賦值的 PutBucketTagging 要求,以移除儲存桶中的所有其他標籤。請勿修改或移除 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤。

GetBucketAcl

傳回正面回應、以及貯體擁有者的 ID 、 DisplayName 和權限、表示擁有者擁有該貯體的完整存取權。

GetBucketCors

傳回 `cors`貯體的組態。

GetBucketEncryption

傳回儲存區的預設加密組態。

GetBucketLifecycleConfiguration

(先前命名的 Get Bucket 生命週期)

傳回儲存桶的生命週期組態。請參閱"建立S3生命週期組態"

GetBucketLocation

傳回使用 LocationConstraint 元素在 CreateBucket 請求中設定的區域。如果儲存桶的區域為 us-east-1(預設值),則會傳回 LocationConstraint 的空值。

GetBucketNotificationConfiguration

(先前命名的 Get Bucket 通知)

傳回附加至貯體的通知組態。

GetBucketPolicy

傳回附加至貯體的原則。

GetBucketReplication

傳回附加至貯體的複寫組態。

GetBucketTagging

使用 `tagging`子資源傳回貯體的所有標記。

注意:如果為此儲存桶設定了非預設的 ILM 原則標籤,則會有一個 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤被賦予一個值。請勿修改或移除此標籤。

GetBucketVersion

此實作使用 `versioning`子資源傳回貯體的版本設定狀態。

  • _ 空白 _ :版本設定從未啟用(儲存庫「未版本化」)

  • 已啟用:已啟用版本管理

  • 已暫停:先前已啟用版本管理、並已暫停

GetObjectLockConfiguration

如果已設定、則會傳回儲存區預設保留模式和預設保留期間。

標題庫

決定貯體是否存在、且您有存取權限。

此作業會傳回:

  • x-ntap-sg-bucket-id: UUID 格式的儲存區 UUID 。

  • x-ntap-sg-trace-id:關聯請求的唯一跟蹤 ID 。

ListObjects 和 ListObjectsV2

(先前命名的 GET Bucket )

傳回貯體中的部分或全部物件(最多 1 、 000 個物件)。物件的儲存類別可以有兩個值、即使物件是使用儲存類別選項擷取 REDUCED_REDUNDANCY

  • STANDARD,表示物件儲存在由儲存節點組成的儲存資源池中。

  • GLACIER、表示物件已移至 Cloud Storage Pool 指定的外部儲存區。

如果貯體包含大量具有相同首碼的刪除金鑰、回應可能會包含一些不包含金鑰的金鑰 CommonPrefixes

對於 HeadObject 和 ListObject 請求, StorageGRID傳回具有不同精確度的 LastModified 時間戳,而 AWS 傳回具有相同精確度的時間戳,如以下範例所示:

  • StorageGRID HeadObject:“LastModified”:“2024-09-26T16:43:24 + 00:00”

  • StorageGRID ListObject:“LastModified”:“2024-09-26T16:43:24.931000 + 00:00”

  • AWS HeadObject:“LastModified”:“2023-10-17T00:19:54 + 00:00”

  • AWS ListObject:「LastModified」:「2023-10-17T00:19:54 + 00:00”

ListObjectVerions

(先前命名的 Get Bucket 物件版本)

在貯體上具有讀取存取權、將此作業與子資源一起使用會 `versions`列出貯體中所有物件版本的中繼資料。

PuttBucketCors

設定貯體的 CORS 組態、以便該貯體能夠處理跨來源要求。跨來源資源共用(CORS)是一種安全機制、可讓單一網域中的用戶端Web應用程式存取不同網域中的資源。例如、假設您使用名為的 S3 儲存區 images`來儲存圖形。透過設定貯體的 CORS 組態 `images、您可以允許該貯體中的影像顯示在網站上 http://www.example.com

PuttBucketEncryption

設定現有儲存區的預設加密狀態。啟用桶層級加密時、任何新增至桶的新物件都會加密。StorageGRID支援使用StorageGRID管理的金鑰進行伺服器端加密。指定伺服器端加密組態規則時,請將參數設定 SSEAlgorithm`為 `AES256,而不要使用 `KMSMasterKeyID`參數。

如果物件上傳要求已指定加密(亦即、如果要求包含要求標頭)、則會忽略貯體預設加密組態 x-amz-server-side-encryption-*

PuttBucketLifecycleConfiguration

(先前命名的 Put Bucket 生命週期)

為貯體建立新的生命週期組態、或取代現有的生命週期組態。在生命週期組態中、支援多達1、000個生命週期規則。StorageGRID每個規則可包含下列XML元素:

  • 到期(天數、日期、 ExpiredObjectDeleteMarker )

  • 非目前版本到期( NewerNoncurrentVerions 、 NoncurrentDays )

  • 篩選器(前置、標記)

  • 狀態

  • ID

不支援下列動作:StorageGRID

  • AbortIncompleteMultiPart上 傳

  • 移轉

請參閱"建立S3生命週期組態"。若要了解儲存桶生命週期中的到期行動如何與 ILM 放置指令互動,請參閱"ILM如何在整個物件生命週期內運作"

附註:鏟斗生命週期組態可搭配已啟用S3物件鎖定的鏟斗使用、但舊型符合標準的鏟斗不支援鏟斗生命週期組態。

PutBucketNotificationConfiguration

(先前命名的 Put Bucket 通知)

使用要求主體中的通知組態 XML 來設定貯體通知。您應該瞭解下列實作詳細資料:

  • StorageGRID支援 Amazon Simple Notification Service (Amazon SNS) 主題、Kafka 主題或 webhook 端點作為目的地。不支援簡單佇列服務 (SQS) 或 AWS Lambda 端點。

  • 通知的目的地必須指定為StorageGRID 一個端點的URN。端點可以使用租戶管理程式或租戶管理API來建立。

    端點必須存在、通知組態才能成功。如果端點不存在, 400 Bad Request`則會傳回錯誤代碼 `InvalidArgument

  • 您無法設定下列事件類型的通知。這些事件類型*不支援*。

    • s3:ReducedRedundancyLostObject

    • s3:ObjectRestore:Completed

  • 從 StorageGRID 傳送的事件通知使用標準 JSON 格式、但不包含某些金鑰、也不為其他金鑰使用特定值、如下表所示:

    • 事件來源

      sgws:s3

    • * awsRegion *

      不含

    • * X-amz-id-2*

      不含

    • * arn*

      urn:sgws:s3:::bucket_name

PuttBucketPolicy

設定附加到儲存桶的原則。請參閱"使用貯體和群組存取原則"

PutBucketReplication

使用要求主體中提供的複寫組態 XML 來設定"StorageGRID CloudMirror 複寫"貯體。對於CloudMirror複寫、您應該瞭解下列實作詳細資料:

  • StorageGRID 僅支援複寫組態的 V1 版本。這表示 StorageGRID 不支援在規則中使用 `Filter`元素,並遵循 V1 慣例來刪除物件版本。如需詳細資訊、請參閱 "Amazon Simple Storage Service 使用者指南:複寫組態"

  • 儲存區複寫可在版本控制或未版本控制的儲存區上進行設定。

  • 您可以在複寫組態XML的每個規則中指定不同的目的地儲存區。來源儲存區可複寫至多個目的地儲存區。

  • 目的地儲存桶必須指定為租戶管理器或租戶管理 API 中指定的 StorageGRID 端點的 URN。請參閱"設定CloudMirror複寫"

    複寫組態必須存在端點才能成功。如果端點不存在、則要求會以失敗的方式失敗 400 Bad Request。錯誤訊息指出: Unable to save the replication policy. The specified endpoint URN does not exist: URN.

  • 您不需要在組態 XML 中指定 Role。此值不供StorageGRID Some使用、如果提交、將會忽略此值。

  • 如果您省略組態 XML 中的儲存類別、則 StorageGRID 預設會使用 `STANDARD`儲存類別。

  • 如果您從來源儲存區刪除物件、或是刪除來源儲存區本身、跨區域複寫行為如下:

    • 如果您在物件或貯體複寫之前刪除該物件或貯體、則不會複寫該物件 / 貯體、也不會通知您。

    • 如果您在複寫物件或儲存區之後將其刪除、StorageGRID 則針對跨區域複寫的V1、執行標準Amazon S3刪除行為。

PuttBucketTagging

使用 `tagging`子資源來新增或更新貯體的一組標記。新增庫位標記時、請注意下列限制:

  • 支援每個儲存區最多50個標籤的支援功能包括:StorageGRID

  • 與庫位關聯的標記必須具有唯一的標記金鑰。標籤金鑰長度最多可達128個UNICODE字元。

  • 標記值長度最多可達256個UNICODE字元。

  • 金鑰和值區分大小寫。

注意:如果為此儲存桶設定了非預設的 ILM 原則標籤,則會有一個 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤及其賦值。請確保在所有 PutBucketTagging 請求中包含 `NTAP-SG-ILM-BUCKET-TAG`儲存桶標籤及其賦值。請勿修改或移除此標籤。

  • 附註 * :此作業將覆寫貯體已有的任何目前標籤。如果集合中遺漏任何現有標記、則會移除該貯體的這些標記。

PuttBucketVersion

使用 `versioning`子資源來設定現有儲存區的版本設定狀態。您可以使用下列其中一個值來設定版本設定狀態:

  • 已啟用:啟用儲存區中物件的版本管理。新增至儲存庫的所有物件都會收到唯一的版本ID。

  • 暫停:停用儲存區中物件的版本設定。添加到桶中的所有對象都將接收版本 ID null

PutObjectLockConfiguration

  • 設定或移除貯體預設保留模式和預設保留期間。

  • 如果網格系統管理員已授予權限,則對現有儲存桶啟用 S3 物件鎖定。

如果修改預設保留期間,現有物件版本的保留截止日期保持不變,不會使用新的預設保留期間重新計算。