我知道下面提供的代码用于删除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());
}
答案 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());
}