【发布时间】:2020-06-06 06:53:42
【问题描述】:
我正在尝试在 boto3 中编写以下 AWS CLI 命令:
aws s3api list-objects-v2 --bucket bucket --query "Contents[?LastModified>='2020-02-20T17:00:00'] | [?LastModified<='2020-02-20T17:10:00']"
我的目标是能够仅列出指定存储桶中在特定时间间隔内创建的那些 s3 文件。在上面的示例中,当我运行此命令时,它仅返回在 17:00 到 17:10 之间创建的文件。
查看 boto3 文档时,我没有看到与上述命令的“--query”部分类似的任何内容,因此我不确定如何仅返回下降的文件在指定的时间间隔内。
(请注意:列出存储桶中的所有对象并从更大的列表中过滤不是我的选择。对于我的特定用例,有太多文件无法走这条路。 )
如果不存在等效的 boto3,有没有办法通过 Python 脚本启动这个确切的命令?
提前致谢!
【问题讨论】:
-
@NeilMcGuigan 澄清一下,如果不先从存储桶中检索所有对象,有没有办法做到这一点?根据我的说明,这对于我的用例来说不是一个可行的选择。如果 boto3 不允许 --query 部分,我如何才能从 Python 运行 CLI 命令?
-
你可以使用
subprocess.check_call -
boto3 中不存在
--query等效项的原因是这是一个客户端过滤器,对list-objects-v2调用的结果执行。它不会发生在服务器端。您可以通过过滤结果在客户端实现它,就像 awscli 一样。
标签: amazon-web-services amazon-s3 aws-lambda boto3 aws-cli