7


0

Amazon S3でn日より古いオブジェクトを自動的に削除する(方法?)

ruby lib(http://amazon.rubyforge.org/)を使用して、Amazon S3に多くの画像を保存しています

1週間以上前の写真は気にしません。S3のスペースを解放するには、それらの写真を削除する必要があります。

特定のバケット内のオブジェクトを削除する方法があることを知っています。

S3Object.delete 'photo-1.jpg', 'photos'

1週間以上経過した画像を自動的に削除する方法はありますか?

存在しない場合、それを行うにはデーモンを作成する必要があります:-(

ありがとうございました

'' '' '

更新:可能になりました。ロベルトの答えを確認してください。

3 Answer


43


  • Amazon S3 Object Expirationポリシー*を使用できます

_ _ S3を使用してログファイルまたは寿命が限られている他のファイルを保存する場合、オブジェクトの年齢を追跡し、時々バルク削除プロセスを開始するために、何らかのメカニズムを社内で構築する必要がありました。 新しいマルチオブジェクト削除機能を使用すると、このプロセスをより迅速かつ簡単に行うことができますが、さらに遠くまで行きたいと考えています。

S3の新しいオブジェクト有効期限機能を使用すると、ルールを定義して、事前定義された期間後にオブジェクトの削除をスケジュールできます。 ルールは、バケットに適用するライフサイクル設定ポリシーで指定されます。 このポリシーは、S3 APIまたはAWSマネジメントコンソールから更新できます。 _ _

http://docs.amazonwebservices.com/AmazonS3/latest/dev/ObjectExpiration.html [オブジェクトの有効期限| AWS S3ドキュメント]

_ Amazon S3バケットに保存するオブジェクトの中には、明確に定義されたライフタイムを持つものがあります。 たとえば、定期的なログをバケットにアップロードしている場合でも、それらのログを特定の期間保持する必要がある場合があります。 オブジェクトライフサイクル管理を使用して、バケット内のオブジェクトのライフタイムを指定できます。オブジェクトの有効期限が切れると、Amazon S3は削除のためにオブジェクトをキューに入れます。 _

Ps:詳細については、リンクをクリックしてください。


1


ローカルデータベースにアクセスできる場合、各画像を簡単に記録するのは簡単です(アプリケーションに応じて既にこれを行っている場合があります)。その後、単純なクエリを実行してリスト全体を取得し、それぞれを削除できます。 これは、S3を直接クエリするよりもはるかに高速ですが、何らかのローカルストレージが必要です。


0


残念ながら、Amazonは特定の基準に基づいた自動削除のためのAPIを提供していません。

すべての写真を調べて、条件を満たす写真のみを選択し、それらを1つずつ削除するデーモンを作成する必要があります。