本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立 S3 批次操作任務
您可以使用 Amazon S3 Batch Operations,在特定 Amazon S3 物件清單上執行大規模的批次操作。本節說明建立 S3 批次操作任務所需的資訊,以及 CreateJob
要求的結果,它還提供使用 Amazon S3 主控台、 AWS Command Line Interface (AWS CLI) 和 建立批次操作任務的說明 適用於 Java 的 AWS SDK。
建立 S3 批次操作任務時,您可以請求所有任務或僅限失敗任務的完成報告。只要順利叫用至少一個任務,S3 Batch Operations 就會產生已完成、失敗或已取消任務的報告。如需詳細資訊,請參閱範例:S3 批次操作完成報告。
下列影片提供如何使用 Amazon S3 主控台建立 Batch Operations 任務的簡短示範。
批次操作任務請求元素
若要建立 S3 批次操作任務,您必須提供下列資訊:
- 操作
-
請指定希望 S3 批次操作針對資訊清單中物件執行的操作。每個操作類型都接受該操作特有的參數。您可以透過 Batch Operations 大量執行操作,結果與您在每一個物件上逐一執行操作相同。
- 清單檔案
-
清單檔案是您希望 S3 Batch Operations 對其執行指定操作的所有物件的清單。您可以使用下列方法指定 Batch Operations 任務的清單檔案:
-
手動建立自己的自訂 CSV 格式物件清單。
-
選擇現有的 CSV 格式 使用 S3 庫存清單編目和分析資料 報告。
-
指示 Batch Operations 根據您在建立任務時指定的物件篩選條件自動產生清單檔案。此選項適用於您在 Amazon S3 主控台中建立的批次複寫任務,或您透過 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
注意
-
無論您如何指定清單檔案,此清單本身都必須儲存在一般用途儲存貯體中。Batch Operations 無法從目錄儲存貯體匯入現有的清單檔案,或將產生的清單檔案儲存到目錄儲存貯體。不過,清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊,請參閱目錄儲存貯體。
-
如果您清單檔案中的物件位於已進行版本控制的儲存貯體中,指定物件的版本 ID 將會指示 Batch Operations 對特定版本執行操作。如果未指定版本 ID,則 Batch Operations 會對物件的最新版本執行操作。如果您的清單檔案包含版本 ID 欄位,您必須為資訊清單中的所有物件提供一個版本 ID。
如需詳細資訊,請參閱指定資訊清單。
-
- 優先順序
-
請使用任務優先順序,指出此任務與您帳戶中執行之其他任務的相對優先順序。數字越大表示優先順序越高。
任務優先順序僅在相對於為同一帳戶和區域中的其他任務所設定的優先順序有意義。您可以選擇任何適合您的編號系統。例如,您可能想要對所有還原 (
RestoreObject
) 任務指派優先順序 1,對所有複製 (CopyObject
) 任務指派優先順序 2,以及對所有取代存取控制清單 (ACL) (PutObjectAcl
) 任務指派優先順序 3。S3 Batch Operations 會根據優先順序編號來排序任務的優先順序,但不保證嚴格排序。因此,請不要使用任務優先順序來確保其中任何一個任務會在其他任務之前啟動或完成。若您必須確保嚴格排序,請等待一個任務完成之後,再啟動下一個任務。
- RoleArn
-
指定要執行任務的 AWS Identity and Access Management (IAM) 角色。您使用的 IAM 角色必須擁有足夠的許可,來執行任務中指定的操作。例如,若要執行
CopyObject
任務,IAM 角色必須具備來源儲存貯體的s3:GetObject
許可,以及目的地儲存貯體的s3:PutObject
許可。此角色也需要許可才能讀取資訊清單和撰寫完成報告。如需 IAM 角色的詳細資訊,請參閱《IAM 使用者指南》中的 IAM 角色。
如需 Amazon S3 許可的詳細資訊,請參閱 Amazon S3 的政策動作。
注意
對目錄儲存貯體執行動作的 Batch Operations 任務須具備特定許可。如需詳細資訊,請參閱適用於 S3 Express One Zone 的AWS Identity and Access Management (IAM)。
- 報告
-
指定是否希望 S3 批次操作產生完整報告。如果您請求完成報告,您還必須在此元素中提供報告的參數。需要下列資訊:
-
您希望在其中存放報告的儲存貯體
注意
報告必須儲存在一般用途儲存貯體中。Batch Operations 無法將報告儲存至目錄儲存貯體。如需詳細資訊,請參閱目錄儲存貯體。
-
報告的格式
-
您希望報告包含所有任務的詳細資訊,還是僅限失敗的任務
-
選擇性的字首字串
如果提供
CreateJob.Report.ExpectedBucketOwner
欄位,則需要完成報告儲存貯體擁有者相符。如果不相符,則任務會失敗。注意
完成報告一律會使用 Amazon S3 受管金鑰的伺服器端加密 (SSE-S3) 進行加密。
-
- 標籤 (選用)
-
您可以透過新增標籤,標示和控制對 S3 批次操作任務的存取權。您可以使用標籤來識別負責 Batch Operations 任務的人員,或控制使用者與 Batch Operations 任務互動的方式。任務標籤的存在可以授與或限制使用者的以下能力:取消任務、啟動處於確認狀態的任務或變更任務的優先順序層級。例如,假設建立的任務具有標籤
"Department=Finance"
,您就可以授予使用者調用CreateJob
操作的許可。您可以建立已連接標籤的任務,也可以在建立任務後將標籤新增至任務。
如需詳細資訊,請參閱使用標籤控制存取和標記任務。
- 描述 (選用)
-
若要追蹤和監控任務,您也可以提供最多 256 個字元的說明。每當 Amazon S3 在 Amazon S3 主控台上傳回任務的相關資訊或顯示任務的詳細資訊時,都會包含此說明。您可以輕鬆地根據指派的描述來排序和篩選任務。描述不需要是唯一的,因此您可以使用描述作為類別 (例如「每週複製日誌任務」) 來協助您追蹤相似任務的群組。
指定資訊清單
清單檔案是 Amazon S3 物件,其中包含您希望 Amazon S3 採取行動的物件索引鍵。您可透過下列其中一種方式供應清單檔案:
-
手動建立新的清單檔案。
-
使用現有的清單檔案。
-
指示 Batch Operations 根據您在建立任務時指定的物件篩選條件自動產生清單檔案。此選項適用於您在 Amazon S3 主控台中建立的批次複寫任務,或是您使用 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。
注意
Amazon S3 Batch Operations 不支援跨區域產生資訊清單。
無論您如何指定清單檔案,此清單本身都必須儲存在一般用途儲存貯體中。Batch Operations 無法從目錄儲存貯體匯入現有的清單檔案,或將產生的清單檔案儲存到目錄儲存貯體。不過,清單檔案內描述的物件可以儲存在目錄儲存貯體中。如需詳細資訊,請參閱目錄儲存貯體。
建立清單檔案
若要手動建立清單檔案,您可指定清單檔案物件索引鍵、ETag (實體標籤) 和選用的版本 ID (使用 CSV 格式清單)。資訊清單的內容必須為 URL 編碼。
根據預設,Amazon S3 會自動使用採用 Amazon S3 受管金鑰 (SSE-S3) 的伺服器端加密,來加密上傳至 S3 儲存貯體的清單檔案。不支援使用以客戶提供之金鑰 (SSE-C) 進行伺服器端加密的資訊清單。只有在您使用 CSV 格式的庫存報告時,才支援使用伺服器端加密搭配 AWS Key Management Service (AWS KMS) 金鑰 (SSE-KMS) 的資訊清單。 AWS KMS 不支援搭配 使用手動建立的資訊清單。
您的資訊清單必須包含儲存貯體名稱、物件金鑰,也可選擇納入各物件的物件版本。S3 批次作業不會使用資訊清單中的任何其他欄位。
注意
如果您清單檔案中的物件位於已進行版本控制的儲存貯體中,指定物件的版本 ID 將會指示 Batch Operations 對特定版本執行操作。如果未指定版本 ID,則 Batch Operations 會對物件的最新版本執行操作。如果您的清單檔案包含版本 ID 欄位,您必須為資訊清單中的所有物件提供一個版本 ID。
以下為不帶版本 ID 的 CSV 格式資訊清單範例。
amzn-s3-demo-bucket1,objectkey1 amzn-s3-demo-bucket1,objectkey2 amzn-s3-demo-bucket1,objectkey3 amzn-s3-demo-bucket1,photos/jpgs/objectkey4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5 amzn-s3-demo-bucket1,object%20key%20with%20spaces
以下是包含版本 ID 的 CSV 格式清單檔案範例。
amzn-s3-demo-bucket1,objectkey1,PZ9ibn9D5lP6p298B7S9_ceqx1n5EJ0p amzn-s3-demo-bucket1,objectkey2,YY_ouuAJByNW1LRBfFMfxMge7XQWxMBF amzn-s3-demo-bucket1,objectkey3,jbo9_jhdPEyB4RrmOxWS0kU0EoNrU_oI amzn-s3-demo-bucket1,photos/jpgs/objectkey4,6EqlikJJxLTsHsnbZbSRffn24_eh5Ny4 amzn-s3-demo-bucket1,photos/jpgs/newjersey/objectkey5,imHf3FAiRsvBW_EHB8GOu.NHunHO1gVs amzn-s3-demo-bucket1,object%20key%20with%20spaces,9HkPvDaZY5MVbMhn6TMn1YTb5ArQAo3w
指定現有的清單檔案
您可以使用下列兩種格式之一指定建立任務請求的清單檔案:
-
Amazon S3 庫存清單報告:必須是 CSV 格式的 Amazon S3 庫存清單報告。您必須指定與庫存報告關聯的
manifest.json
檔案。如需庫存報告的詳細資訊,請參閱 使用 S3 庫存清單編目和分析資料。如果庫存報告包含版本 ID,則 S3 批次作業會對特定物件版本執行操作。注意
-
S3 Batch Operations 支援使用 SSE-KMS 加密的 CSV 庫存報告。
-
如果您提交使用 SSE-KMS 加密的庫存報告清單檔案,您的 IAM 政策必須包含
manifest.json
物件及所有相關聯 CSV 資料檔案的許可"kms:GenerateDataKey"
和"kms:Decrypt"
。
-
-
CSV 檔案:檔案中的每一列都必須包含儲存貯體名稱、物件索引鍵及選用的物件版本。物件金鑰必須使用 URL 編碼,如下列範例所示。資訊清單必須包含所有物件的版本 ID,或省略所有物件的版本 ID。如需 CSV 清單檔案格式的詳細資訊,請參閱《Amazon Simple Storage Service API 參考》中的 JobManifestSpec。
注意
S3 Batch Operations 不支援使用 SSE-KMS 加密的 CSV 清單檔案。
重要
如果您使用手動建立的清單檔案和版本控制的儲存貯體時,我們建議您指定物件的版本 ID。建立任務時,S3 批次作業會在執行任務之前剖析整個資訊清單。但是,它不會為儲存貯體的狀態拍攝「快照」。
由於清單檔案可能包含數十億個物件,因此任務可能需要很長的時間來執行,這樣可能會影響任務採取行動的物件版本。假設您在任務執行時,以新版本覆寫物件,而您未指定該物件的版本 ID。在此情況下,Amazon S3 會對物件的最新版本執行操作,而非您建立任務時已存在的版本。避免此行為最簡單的方式,便是為資訊清單中列出的物件指定版本 ID。
自動產生清單檔案
您可以指示 Amazon S3 根據您在建立任務時指定的物件篩選條件自動產生清單檔案。此選項適用於您在 Amazon S3 主控台中建立的批次複寫任務,或是您使用 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 建立的任何任務類型。如需批次複寫的詳細資訊,請參閱 使用批次複寫來複寫現有物件。
若要自動產生清單檔案,請在任務建立請求中指定下列元素:
-
包含來源物件的儲存貯體相關資訊,包括儲存貯體擁有者和 Amazon Resource Name (ARN)
-
清單檔案輸出的相關資訊,包括建立清單檔案的旗標、輸出儲存貯體擁有者、ARN、字首、檔案格式及加密類型
-
依物件建立日期、金鑰名稱、大小和儲存類別篩選物件的選用條件。在複寫作業的案例中,您也可以使用標籤來篩選物件。
物件篩選條件
若要篩選要包含在自動產生的清單檔案中的物件清單,您可以指定下列篩選條件。如需詳細資訊,請參閱 Amazon S3 API 參考中的 JobManifestGeneratorFilter。
- CreatedAfter
-
如有提供,則產生的清單檔案只會包含在此時間之後建立的來源儲存貯體物件。
- CreatedBefore
-
如有提供,則產生的清單檔案只會包含在此時間之前建立的來源儲存貯體物件。
- EligibleForReplication
-
如有提供,則產生的清單檔案只會包含根據來源儲存貯體上的複寫組態,符合複寫資格的物件。
- KeyNameConstraint
-
如有提供,則產生的清單檔案只會包含物件索引鍵符合針對 MatchAnySubstring、MatchAnyPrefix 和 MatchAnySuffix 所指定字串限制的來源儲存貯體物件。
MatchanySubString:如有提供,則產生的清單檔案會在指定的字串出現在物件索引鍵字串內的任何位置時包含物件。
MatchAnyPrefix:如有提供,則產生的清單檔案會在指定的字串出現在物件索引鍵字串開頭時包含物件。
MatchAnySuffix:如有提供,則產生的清單檔案會在指定的字串出現在物件索引鍵字串結尾時包含物件。
- MatchAnyStorageClass
-
如有提供,則產生的清單檔案只會包含以指定的儲存類別儲存的來源儲存貯體物件。
- ObjectReplicationStatuses
-
如有提供,則產生的清單檔案只會包含具有其中一種指定複寫狀態的來源儲存貯體物件。
- ObjectSizeGreaterThanBytes
-
如有提供,則產生的清單檔案只會包含檔案大小大於所指定位元組數目的來源儲存貯體物件。
- ObjectSizeLessThanBytes
-
如有提供,則產生的清單檔案只會包含檔案大小小於所指定位元組數目的來源儲存貯體物件。
注意
您無法複製大部分已自動產生清單檔案的任務。除非批次複寫任務使用 KeyNameConstraint
、MatchAnyStorageClass
、ObjectSizeGreaterThanBytes
或 ObjectSizeLessThanBytes
清單檔案篩選條件,否則可以複製這些任務。
指定清單檔案條件的語法會根據您用來建立任務的方法而有所不同。如需範例,請參閱 建立任務。
建立任務
您可以使用 Amazon S3 主控台、 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 來建立 Amazon S3 批次操作任務。 Amazon S3
如需建立任務請求的詳細資訊,請參閱 批次操作任務請求元素。
先決條件
建立 Batch Operations 任務之前,請先確認您已設定相關許可。如需詳細資訊,請參閱授予批次操作的許可。
建立批次任務
登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/s3/
的 Amazon S3 主控台。 -
在頁面頂端的導覽列中,選擇目前顯示的 AWS 區域名稱。接下來,選擇您要在其中建立作業的區域。
注意
對於複製操作,您必須在與目的地儲存貯體相同的區域中建立作業。對於所有其他操作,您必須在與資訊清單中的物件相同的區域中建立作業。
-
在 Amazon S3 主控台的左側導覽窗格上,選擇 Batch Operations。
-
選擇建立作業。
-
檢視您要在其中建立作業的 AWS 區域。
-
在 Manifest format (資訊清單格式) 下,選擇要使用的資訊清單物件類型。
-
如果您選擇 S3 inventory report (S3 庫存報告),請輸入 Amazon S3 在 CSV 格式庫存報告中所產生 manifest.json 物件的路徑。若要使用最新版本以外的版本,則可選擇輸入資訊清單物件的版本 ID。
-
如果您選擇 CSV,請輸入 CSV 格式資訊清單物件的路徑。資訊清單物件必須遵循主控台中所描述的格式。如果要使用最新版本以外的版本,則可以選擇包含資訊清單物件的版本 ID。
注意
Amazon S3 主控台僅支援針對批次複寫任務自動產生清單檔案。對於所有其他任務類型,如果您希望 Amazon S3 根據指定的篩選條件自動產生資訊清單,則必須使用 AWS CLI、 AWS SDKs 或 Amazon S3 REST API 來設定任務。
-
-
選擇下一步。
-
在 Operation (操作) 底下,選擇要對資訊清單上所有物件執行的操作。填寫您選擇的操作資訊,然後選擇 Next (下一步)。
-
填寫 Configure additional options (設定其他選項) 的資訊,然後選擇 Next (下一步)。
-
在 Review (檢閱) 中,確認您的設定。如需變更,請選擇 Previous (上一步)。否則選擇建立任務。
若要使用 建立批次操作任務 AWS CLI,請根據您要指定現有資訊清單或自動產生資訊清單,選擇下列其中一個範例。
若要使用適用於 Java 的 AWS 開發套件建立批次操作任務,您可以根據指定現有資訊清單或自動產生資訊清單,在兩種方法之間進行選擇:
-
指定現有資訊清單:建立對現有資訊清單檔案中列出的物件執行動作的 S3 批次操作任務 (例如
S3PutObjectTagging
)。此方法要求您提供資訊清單位置、ETag 和格式規格。 -
自動產生資訊清單:建立根據物件篩選條件自動產生資訊清單的 S3 批次操作任務 (例如
s3PutObjectCopy
),包括建立日期、金鑰名稱和大小限制。
這兩種方法都使用 S3Control 用戶端來設定任務操作、資訊清單規格、任務報告、IAM 角色和其他任務參數,包括優先順序和確認要求。
如需如何使用適用於 Java 的 AWS SDK 建立 S3 批次操作任務的範例,請參閱《Amazon S3 API 參考》中的建立批次任務以複製物件。
您可以使用 REST API 建立批次操作任務。如需詳細資訊,請參閱 Amazon Simple Storage Service API 參考中的 CreateJob。
任務回應
如果 CreateJob
請求成功,Amazon S3 會傳回任務 ID。任務 ID 是 Amazon S3 自動產生的唯一識別符,讓您可以識別批次操作並監控其狀態。
當您透過 AWS CLI、 AWS SDKs或 REST API 建立任務時,您可以設定 S3 批次操作以開始自動處理任務。任務會在準備好後立即開始執行,而不會等待優先順序更高的任務。
當您透過 Amazon S3 主控台建立任務時,您必須檢閱任務詳細資訊,並確認您希望在 Batch Operations 開始處理任務之前執行該任務。如果任務保持在暫停狀態的時間超過 30 天,則該任務會失敗。