从AMAZON S3删除今天之前创建的所有文件

时间:2017-02-21 11:26:01

标签: java amazon-s3

我知道下面提供的代码用于删除AMAZON s3存储桶中的文件,但我的要求是从存储桶中删除今天日期之前创建的所有文件。这意味着,我想将今天的日期,bucketName作为输入参数传递给函数,该函数应该删除在今天的日期之前创建的所有文件。我可以实现这一点。

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());
        }

1 个答案:

答案 0 :(得分: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());
}
相关问题