不完全なマルチパートアップロードを中止するためのバケットライフサイクルポリシーの設定 - Amazon Simple Storage Service

不完全なマルチパートアップロードを中止するためのバケットライフサイクルポリシーの設定

ベストプラクティスとして、ストレージコストを最小限に抑えるため、AbortIncompleteMultipartUpload アクションを使用してライフサイクルルールを設定することをお勧めします。マルチパートアップロードを中止する方法の詳細については、「マルチパートアップロードの中止」をご参照ください。

Amazon S3 は、バケットライフサイクルルールをサポートしています。このルールを使用すると、開始後指定された日数内に完了しないマルチパートアップロードを停止するよう Amazon S3 に指示できます。マルチパートアップロードが期間内に完了しない場合、オペレーション中止の対象となり、Amazon S3 がマルチパートアップロードを中止します (さらに、マルチパートアップロードに関連付けられたパートを削除します)。

AbortIncompleteMultipartUpload アクションにルールを指定するライフサイクル設定の例を次に示します。

<LifecycleConfiguration> <Rule> <ID>sample-rule</ID> <Prefix></Prefix> <Status>Enabled</Status> <AbortIncompleteMultipartUpload> <DaysAfterInitiation>7</DaysAfterInitiation> </AbortIncompleteMultipartUpload> </Rule> </LifecycleConfiguration>

この例のルールでは、Prefix 要素の値 (オブジェクトキー名のプレフィックス) を指定しません。したがって、これはマルチパートアップロードを開始したバケット内のすべてのオブジェクトに適用されます。開始されてから 7 日以内に完了しなかったマルチパートアップロード、中止オペレーションの対象となります。中止アクションは、完了したマルチパートアップロードに影響を与えません。

バケットライフサイクル設定についての詳細は、「ストレージのライフサイクルの管理」を参照してください。

注記

マルチパートアップロードが、ルールで指定された日数内に完了した場合、AbortIncompleteMultipartUpload ライフサイクルアクションは適用されません (つまり Amazon S3 はアクションを実行しません)。また、このアクションはオブジェクトには適用されません。このライフサイクルアクションによって削除されるオブジェクトはありません。

以下のput-bucket-lifecycle-configuration CLI コマンドは、指定したバケットのライフサイクル設定を追加します。

$ aws s3api put-bucket-lifecycle-configuration  \ --bucket bucketname  \ --lifecycle-configuration filename-containing-lifecycle-configuration

CLI コマンドをテストするには、以下の作業を行います。

  1. AWS CLI をセットアップします。手順については、「AWS CLI を使用した Amazon S3 での開発」を参照してください。

  2. 次のサンプルライフサイクル設定をファイル (lifecycle.json) に保存します。サンプル設定では、空のプレフィックスが指定されているため、バケット内のすべてのオブジェクトに適用されます。ポリシーがオブジェクトのサブセットに制限されるようにプレフィックスを指定できます。

    { "Rules": [ { "ID": "Test Rule", "Status": "Enabled", "Filter": { "Prefix": "" }, "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 } } ] }
  3. 次の CLI コマンドを実行して、バケットにライフサイクル設定を指定します。

    aws s3api put-bucket-lifecycle-configuration   \ --bucket bucketname  \ --lifecycle-configuration file://lifecycle.json
  4. 確認するには、get-bucket-lifecycle CLI コマンドを使用してライフサイクル設定を取得します。

    aws s3api get-bucket-lifecycle  \ --bucket bucketname
  5. ライフサイクル設定を削除するには、delete-bucket-lifecycle CLI コマンドを使用します。

    aws s3api delete-bucket-lifecycle \ --bucket bucketname