最佳答案
无法在服务端进行此类过滤。 S3 API 不支持它。您可以通过在对象名称中使用前缀
来完成类似的事情。例如,如果您使用如下模式命名所有对象:
YYYYMMDD/<objectname>
20140618/foobar (as an example)
您可以使用 S3 中的 ListBucket
请求的 prefix
参数来仅返回今天存储的对象。在 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
关于amazon-web-services - 用于aws s3的python boto,如何获取存储桶中的排序和有限文件列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24282214/