我知道以下提供的代码用于从AMAZON s3存储桶中删除文件,但是我的要求是从存储桶中删除今天之前创建的所有文件。这意味着,我想将今天的date,bucketName作为输入参数传递给函数,并且该函数应该从该bucket中删除今天的日期之前创建的所有文件。我如何实现这一点。
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());
}
最佳答案
您可以将日期与上次修改对象的时间进行比较,这是您可以从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());
}