2017-02-21 9 views
0

私は、AMAZON s3バケットからファイルを削除するためのコードを知っていますが、私の要件は今日の日付より前に作成されたファイルをすべてバケットから削除することです。つまり、今日の日付であるbucketNameを入力パラメータとして関数に渡して、その関数が今日の日付より前に作成されたすべてのファイルをそのbucketから削除しなければならないことを意味します。AMAZON S3から今日までに作成されたすべてのファイルを削除します

String Bucket_Name = "my_bucket"; 
String key = "Path/to/my/folder"; 
ObjectListing objects = s3Client.listObjects(BUCKET_NAME, key); 
    for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) 
     { 
     s3Client.deleteObject(BUCKET_NAME, objectSummary.getKey()); 
     } 
+0

あなたが本当に達成しようとしている内容に応じて、S3は、[自動]あなたのためにこれを行うことができます(http://docs.aws.amazon.com/AmazonS3/latest/dev/object-lifecycle-mgmt .html)。 –

答えて

1

あなたは、オブジェクトが最後に変更された時刻に日付を比較することができ、それはあなたがS3ObjectSummaryからの日数について得ることができる唯一の情報です。

hereのように、オブジェクトのメタデータの一部として保存されます。

String Bucket_Name = "my_bucket"; 
String key = "Path/to/my/folder"; 
Date today = Calendar.getInstance().getTime(); 
ObjectListing objects = s3Client.listObjects(BUCKET_NAME, key); 
for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) 
{ 
    if(objectSummary.getLastModified().before(today)) 
     s3Client.deleteObject(BUCKET_NAME, objectSummary.getKey()); 
} 
関連する問題