使用 Java 查找在过去 1 小时内添加到 S3 存储桶文件夹中的文件
Using Java find files added to S3 bucket folder in the last 1 hour
我们在 S3 文件夹中有 1,000,000 个文件。每小时都会向上述文件夹添加一些新文件。
如何使用 Java 查找在过去 5 分钟或过去 1 小时内添加的文件?
最直接的方法是扫描存储桶并查找新的时间戳。这很昂贵,很慢,而且真的是个坏主意。
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 to add each key to a SQS queue. I'm not going to detail this, even in pseudocode, but Eric Hammond has a good entry detailing how to do this。
我们在 S3 文件夹中有 1,000,000 个文件。每小时都会向上述文件夹添加一些新文件。
如何使用 Java 查找在过去 5 分钟或过去 1 小时内添加的文件?
最直接的方法是扫描存储桶并查找新的时间戳。这很昂贵,很慢,而且真的是个坏主意。
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 to add each key to a SQS queue. I'm not going to detail this, even in pseudocode, but Eric Hammond has a good entry detailing how to do this。