s3-boto-按上传时间列出存储桶中的文件
我需要每小时从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()函数的内联文档。