如果存储桶上的文件太多,而我只想获取 100 个最新文件,
我怎样才能只得到这些列表?
s3.bucket.list http://boto.readthedocs.org/en/latest/ref/s3.html#boto.s3.bucket.Bucket.list好像没有这个功能。有知道这个的人吗?
请告诉我。谢谢。
没有办法在服务端进行这种类型的过滤。 S3 API 不支持它。您也许可以通过使用来完成类似的事情prefixes
在你的对象名称中。例如,如果您使用如下模式命名所有对象:
YYYYMMDD/<objectname>
20140618/foobar (as an example)
你可以使用prefix
的参数ListBucket
S3 中的请求仅返回今天存储的对象。在 boto 中,这看起来像:
import boto
s3 = boto.connect_s3()
bucket = s3.get_bucket('mybucket')
for key in bucket.list(prefix='20140618'):
# do something with the key object
您仍然需要检索具有该前缀的所有对象,然后根据它们在本地对它们进行排序last_modified_date
但这比列出桶中的所有对象然后排序要容易得多。
另一种选择是将元数据对象(S3 对象)存储在 DynamoDB 等数据库中,然后查询该数据库以查找要从 S3 检索的对象。
您可以找到有关 S3 中分层列表的更多信息here http://docs.aws.amazon.com/AmazonS3/latest/dev/ListingKeysHierarchy.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)