我知道下面提供的代码用于从 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());
}
最佳答案
您可以将日期与对象上次修改的时间进行比较,这是您可以从 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());
}
关于java - 从 AMAZON S3 中删除今天之前创建的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366000/