2012-01-24 21 views
43

x日より古いファイルを削除する既存のソリューションはありますか?S3で古いファイルを削除または削除する方法は?

+1

今のところ私はこの解決法を使用します: 's3cmd ls s3:// mybucket/mypath/| ruby​​ -rdate -ne '日付、時刻、サイズ、uri = $ _。split; days =(Time.now - Date.parse(date).to_time)/ 60/60/24;もし2日間ならばuriを置く| xargs s3cmd del' – Erik

答えて

62

Amazonは最近object expirationを導入しました。

Amazon S3の発表オブジェクトの有効期限

は、Amazon S3を使用すると、事前に定義された期間の後に あなたのオブジェクトの削除をスケジュールすることを可能にする新機能 、オブジェクトの有効期限を発表しました。オブジェクトの有効期限 を使用してオブジェクトを定期的に削除するスケジュールを設定すると、 オブジェクトを削除してAmazonの S3に削除要求を送信する必要がなくなります。

バケット内のオブジェクトセットに対するオブジェクトの有効期限ルールを定義できます。各オブジェクトの有効期限ルールでは、接頭辞 と有効期限を日数で指定できます。プレフィックスフィールド(例えば、 logs/)は、有効期限ルールの対象となるオブジェクトを識別し、 は、オブジェクトを削除する必要がある、作成日から(すなわち、年齢)までの日数を指定します。オブジェクト が有効期限を過ぎると、それらは削除のためにキューに入れられます。 の有効期限以降のオブジェクトの保存には、 は請求されません。ここで

+1

優秀、ありがとう! – Erik

+0

これは、Amazonによって提供されるかなり鈍いツールです。それはそれがスズについて言うことをする!削除の方法を細かく制御する必要がある場合は、古いDELETEメソッドを使用する必要があります。他のオプションは、1000までの異なるオブジェクト期限ルール(および1000の異なるプレフィックス)を持つことです。まだあなたは1000に制限されています。 –

+4

これは、 "古い既存のファイル"を削除しません。それはあなたがそれを作成する時から有効になります。 – Harshdeep

関連する問題