

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用條件式請求將先決條件新增至 S3 操作
<a name="conditional-requests"></a>

您可以使用條件式請求將先決條件新增至 S3 操作。若要使用條件式請求，請將額外的標頭新增至 Amazon S3 API 操作。此標頭會指定條件，如果不符合，則會導致 S3 操作失敗。

`GET`、`HEAD` 和 `COPY` 請求支援條件式讀取。您可以新增先決條件，根據物件的實體標籤 (ETag) 或上次修改日期來傳回或複製物件。這可限制對自指定日期以來已更新的物件執行 S3 操作。您也可以限制對特定 ETag 執行 S3 操作。這可確保您只傳回或複製特定物件版本。如需物件中繼資料的詳細資訊，請參閱「[使用物件中繼資料](UsingMetadata.md)」。

條件式寫入可確保在 `PUT` 操作期間，您的儲存貯體中不存在具有相同金鑰名稱的現有物件。這可防止覆寫具有相同金鑰名稱的現有物件。同樣地，您可以使用條件式寫入來檢查物件的 ETag 是否保持不變，再更新物件。這可防止在不知道其內容狀態的情況下，意外覆寫物件。您可以針對 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObject.html)、 [CompleteMultipartUpload](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html) 或 [CopyObject](https://docs.aws.amazon.com/AmazonS3/latest/API/API_CopyObject.html) 請求使用條件式寫入。如需金鑰名稱的詳細資訊，請參閱「[命名 Amazon S3 物件](object-keys.md)」。

條件式刪除會在刪除物件之前，評估物件是否存在或保持不變。您可以在一般用途和目錄儲存貯體中，使用 `DeleteObject` 或 `DeleteObjects` API 執行條件式刪除。如需條件式刪除的詳細資訊，請參閱 [如何執行條件式刪除](conditional-deletes.md)。條件式讀取、條件式寫入或條件式刪除，無需額外費用。您只需針對適用的請求以現有費率支付費用，包括失敗的請求。如需 Amazon S3 功能與定價的相關資訊，請參閱 [Amazon S3 定價](https://aws.amazon.com/s3/pricing)。

**Topics**
+ [如何使用條件式讀取根據中繼資料擷取或複製物件](conditional-reads.md)
+ [如何使用條件式寫入防止物件覆寫](conditional-writes.md)
+ [如何執行條件式刪除](conditional-deletes.md)