使用Java查找在过去1小时内添加到S3存储区文件夹的文件

时间:2015-02-01 16:33:05

标签: java amazon-web-services amazon-s3

我们在S3文件夹中有1,000,000个文件。每小时都会有一些新文件添加到上面的文件夹中。

使用Java如何找到最近5分钟或最近1小时内添加的文件?

1 个答案:

答案 0 :(得分:0)

最直接的方法是扫描存储桶并查找新的时间戳。这是昂贵,缓慢,而且确实是一个坏主意。

ObjectListing  objList = s3.listObjects(bucketname)
for (S3ObjectSummary obj in objList.getObjectSummaries()) {
  // compare obj.getLastModified(), a Date object
}

其次,您可以将上传内容设置为按字典顺序与日期保持一致,然后扫描部分密钥。在下列情况下,我会在给定的小时内扫描条目:

s3.listObjects(bucketname, "2015-02-01-15")

最后,最好的选择是使用相对较新的S3 Event Notifications将每个密钥添加到SQS队列。即使在伪代码中,我也不会详细说明这一点,但Eric Hammond has a good entry detailing how to do this