翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の作成 LifeCycle Amazon S3 バケットのルール設定テンプレート
オブジェクトが相当な数あり (または作成する予定があり)、それらのオブジェクトを長期ストレージに移動するか削除するタイミングを特定する場合は、ライフサイクルルールのテンプレートを作成し、そのテンプレートをすべての Amazon S3 バケットに適用することで、時間を大幅に節約できます。
手順は以下のとおりです。
-
既存のバケットのライフサイクル設定を手動で変更します。
-
ルールを保存します。
-
他のバケットにルールを適用します。
次のルールで開始します。

そのルールの JSON 形式を生成するため次のコードを実行します。default.json
という名前で出力をファイルに保存します。
require 'aws-sdk' s3 = Aws::S3::Client.new(region: 'us-west-2') resp = s3.get_bucket_lifecycle_configuration(bucket: 'default') resp.rules.each do |rule| rule.to_hash.to_json end
出力は以下のようになります。
[{"expiration":{"date":null,"days":425},"id":"default","prefix":"","status":"Enabled","transitions":[{"date":null,"days":30,"storage_class":"STANDARD_IA"},{"date":null,"days":60,"storage_class":"GLACIER"}],"noncurrent_version_transitions":[],"noncurrent_version_expiration":null}]
ライフサイクルルールの JSON を用意できたところで、以下の例を使用して他のバケットに適用できます。この例では default.json
からルールを取り出し、バケット other_bucket
に適用します。
require 'aws-sdk' require 'json' class Aws::S3::Types::LifecycleExpiration def to_map map = Hash.new self.members.each { |m| map[m] = self[m] } map end def to_json(*a) to_map.to_json(*a) end end class Aws::S3::Types::Transition def to_map map = Hash.new self.members.each { |m| map[m] = self[m] } map end def to_json(*a) to_map.to_json(*a) end end class Aws::S3::Types::LifecycleRule def to_map map = Hash.new self.members.each { |m| map[m] = self[m] } map end def to_json(*a) to_map.to_json(*a) end end # Pull in contents as a string value = File.open('default.json', "rb").read json_data = JSON.parse(value, opts={symbolize_names: true}) s3 = Aws::S3::Client.new(region: 'us-west-2') s3.put_bucket_lifecycle_configuration(:bucket => 'other_bucket', :lifecycle_configuration => {:rules => json_data})
ベストプラクティス
を有効化することを推奨します。AbortIncompleteMultipartUploadAmazon S3 バケットのライフサイクルルール。
このルールは、開始後、指定された日数内に完了しないマルチパートアップロードを中止するよう Amazon S3 に指示します。設定した時間制限を超えると、Amazon S3 はアップロードを中止して、不完全なアップロードデータを削除します。
詳細については、Amazon Simple Storage Service ユーザーガイドのバージョニングが有効なバケットのライフサイクル設定を参照してください。