Amazon S3 バケットのライフサイクルルール設定テンプレートの作成 - AWS SDK for Ruby

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Amazon S3 バケットのライフサイクルルール設定テンプレートの作成

オブジェクトが相当な数あり (または作成する予定があり)、それらのオブジェクトを長期ストレージに移動するか削除するタイミングを特定する場合は、ライフサイクルルールのテンプレートを作成し、そのテンプレートをすべての Amazon S3 バケットに適用することで、時間を大幅に節約できます。

手順は以下のとおりです。

  1. 既存のバケットのライフサイクル設定を手動で変更します。

  2. ルールを保存します。

  3. 他のバケットにルールを適用します。

次のルールで開始します。

そのルールの 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})
注記

ベストプラクティス

有効にすることをお勧めします。AbortIncompleteMultipartUploadライフサイクルルールを Amazon S3 バケットに適用します。

このルールは、開始後、指定された日数内に完了しないマルチパートアップロードを中止するよう Amazon S3 に指示できます。設定した時間制限を超えると、Amazon S3 はアップロードを中止して、不完全なアップロードデータを削除します。

詳細については、「」を参照してください。バージョニングが有効なバケットのライフサイクル設定Amazon Simple Storage Service 開発者ガイドの「」を参照してください。