2017-02-21 68 views
0

我知道下面提供的代碼是用於刪除AMAZON s3存儲桶中的文件,但我的要求是刪除當前日期之前創建的所有文件。這意味着,我想將今天的日期bucketName作爲輸入參數傳遞給該函數,並且該函數應該刪除在該日期之前創建的所有文件,並且可以實現該功能。從AMAZON S3刪除所有在今天之前創建的文件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()); 
}