s3-boto-按上传时间列出存储桶中的文件

4 投票
2 回答
8225 浏览
提问于 2025-04-17 05:26

我需要每小时从s3服务器下载最新的100个文件。

bucketList = bucket.list(PREFIX)

上面的代码创建了一个文件列表,但这个列表并不是根据文件的上传时间来排序的,因为它是按文件名来列出的,对吧?

我对文件名无能为力,因为文件名是随机生成的。

谢谢。

2 个回答

2

我阅读了列出对象的操作文档,发现对象总是按字母顺序列出的(根据对象的键)。

如果你把每个对象的创建时间编码到对象的键里,可能就能实现你想要的效果。

11

这个列表有多大呢?你可以根据Key的'last_modified'属性来对列表进行排序。

orderedList = sorted(bucketList, key=lambda k: k.last_modified)
keysYouWant = orderedList[0:100]

如果你的列表非常大,这样做可能效率不高。可以查看boto.s3.bucket.Bucket中list()函数的内联文档。

撰写回答