本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon S3 儲存貯體上強制執行條件式刪除
透過使用 Amazon S3 儲存貯體政策,您可以針對一般用途儲存貯體中的物件強制執行具有條件式刪除的If-Match
標頭。如果If-Match
標頭不存在,則會使用 拒絕請求403 Access Denied
。儲存貯體政策是以資源為基礎的政策,您可以使用這些政策來將存取許可授予儲存貯體及其中物件。只有儲存貯體擁有者可建立政策與儲存貯體的關聯。如需儲存貯體政策的詳細資訊,請參閱「Amazon S3 的儲存貯體政策」。
下列範例示範如何使用儲存貯體政策中的條件,強制用戶端使用 If-Match
HTTP 標頭。
範例 1:僅允許使用具有 ETag
值的 If-Match
標頭進行條件式刪除
您可以使用此儲存貯體政策,僅允許使用 DeleteObject
和 DeleteObjects
請求的條件式刪除,其中包含具有 ETag
值的 If-Match
標頭。所有非條件式刪除都會遭到拒絕,並且會通過條件式刪除。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*", "Condition": { "Null": { "s3:if-match": "false" } } }, { "Sid": "AllowGetObjectBecauseConditionalDeleteIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333
:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*" } ] }
範例 2:僅允許使用具有 *
值的 If-Match
標頭進行條件式刪除
您可以使用此儲存貯體政策,僅允許使用 DeleteObject
和 DeleteObjects
請求的條件式刪除,其中包含具有 *
值的 If-Match
標頭。所有非條件式刪除都會遭到拒絕,並且會通過條件式刪除。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket
/*", "Condition": { "Null": { "s3:if-match": "false" } } } ] }