AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
如何確認 Amazon S3 生命週期組態規則,以清理不完整的分段上傳?
我設定了 Amazon Simple Storage Service (Amazon S3) 生命週期組態規則,以清理不完整的分段上傳。我想確認該規則是否有效。
解決方法
注意: 當您使用 AWS Command Line Interface (AWS CLI) 設定規則時,該規則稱為 AbortIncompleteMultipartUpload。
您可以透過以下方式之一確認生命週期組態規則。
查詢伺服器存取日誌
若要查詢伺服器存取日誌,您必須在設定生命週期規則執行之前,在儲存貯體上啟用伺服器存取日誌記錄。日誌可用後,您可以查看日誌以確認規則是否清理了不完整的分段上傳。有關更多伺服器存取日誌報告的操作資訊,請參閱生命週期和日誌記錄。
使用 AWS CLI 上傳分段上傳的某些部分來測試規則
如果您沒有啟用伺服器存取日誌記錄,則可以透過執行不完整的分段上傳來測試規則:
**注意:**以下範例使用 AWS CLI 執行分段上傳。若要使用 AWS SDK 執行分段上傳,請參閱使用分段上傳來上傳和複製物件。
-
將要上傳的檔案拆分為多個部分。例如,如果您使用的是 Linux 作業系統,可以執行類似以下的 split 命令:
split /path/to/filetoupload -
使用 AWS CLI 執行 create-multipart-upload 命令來啟動分段上傳,其類似以下內容:
aws s3api create-multipart-upload --bucket awsexamplebucket --key large_test_file -
此命令會傳回包含 UploadID 的輸出結果。請將 UploadID 的值複製下來,作為後續步驟的參考依據。命令輸出類似於以下內容:
{ "AbortDate": "Mon, 03 Jun 2019 00:00:00 GMT", "AbortRuleId": "multipartcleanup", "Bucket": "awsexamplebucket", "Key": "objectname", "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk" } -
執行 upload-part 命令上傳檔案的第一個部分,其類似以下內容。將所有值替換為您的儲存貯體、檔案和分段上傳的值:
aws s3api upload-part --bucket awsexamplebucket --key large_test_file --part-number 1 --body large_test_file.001 --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk -
該命令會傳回一個輸出結果,內容包含您上傳的檔案部分 ETag 值。請將 ETag 的值複製下來,作為後續步驟的參考依據。命令輸出類似於以下內容:
-
請對檔案的某些部分重複執行步驟 3 和 4。在此測試中,請勿上傳所有部分以完成整個檔案。
{ "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"" }**注意:**請確保每次上傳新的部分時,部份編號都有依序遞增。
-
在此測試中,請勿完成或中止分段上傳操作。而是透過執行 list-parts 命令來記錄已上傳的分段,其類似於以下內容:
aws s3api list-parts --bucket awsexamplebucket --key large_test_file --upload-id exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk -
此命令會傳回該部分的清單,其類似下列內容:
{ "Parts": [ { "PartNumber": 1, "LastModified": "2019-06-01T18:17:39.000Z", "ETag": "\"example8be9a0268ebfb8b115d4c1fd3\"", "Size": 162641 }, { "PartNumber": 2, "LastModified": "2019-06-01T18:18:19.000Z", "ETag": "\"example246e31ab807da6f62802c1ae8\"", "Size": 3961 } ], "Initiator": { "ID": "arn:aws:iam::111122223333:user/jane", "DisplayName": "jane" }, "Owner": { "DisplayName": "bucketowner", "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d" }, "StorageClass": "STANDARD" } -
透過執行 list-multipart-uploads 命令,記錄您的儲存貯體正在進行的分段上傳,其類似以下內容:
aws s3api list-multipart-uploads --bucket awsexamplebucket該命令會傳回正在進行的分段上傳的清單,其類似於以下內容:
{ "Uploads": [ { "UploadId": "exampleTUVGeKAk3Ob7qMynRKqe3ROcavPRwg92eA6JPD4ybIGRxJx9R0VbgkrnOVphZFK59KCYJAO1PXlrBSW7vcH7ANHZwTTf0ovqe6XPYHwsSp7eTRnXB1qjx40Tk", "Key": "large_test_file", "Initiated": "2019-06-01T17:08:33.000Z", "StorageClass": "STANDARD", "Owner": { "DisplayName": "bucketowner", "ID": "examplea2395fe1985ffabfe0c17d3522e5bc7fa1a2d048f8fc764d7709da80d" }, "Initiator": { "ID": "arn:aws:iam::111122223333:user/jane", "DisplayName": "jane" } } ] } -
當您設定生命週期組態規則時,您已指定分段上傳開始後多少天應進行清理。請等待您為該規則設定的天數。
-
再次執行 list-parts 命令,確認未完成的分段上傳的部分已刪除。當規則刪除該部分後,命令會傳回此回應:"An error occurred (NoSuchUpload) when calling the ListParts operation: The specified upload does not exist. The upload ID may be invalid, or the upload may have been aborted or completed."
-
再次執行 list-multipart-uploads 命令以確認分段操作已停止。當規則停止了分段操作後,該命令不會傳回任何輸出結果。
相關資訊
相關內容
AWS 官方已更新 1 年前