Chr*_*ood 2 python amazon-s3 s3cmd aws-cli boto3
我有一个摄像头,每小时都会向我的 AWS S3 存储桶添加新文件,除非不这样做。为了快速排除故障,我希望能够找到(列出或查看)S3 文件夹中的最新文件。或者列出自特定日期/时间以来的所有文件。FWIW,文件名由 UNIX 纪元日期戳组成,因此我可以查找包含大于 161315000 的数字的文件名。
到目前为止,我唯一的解决方案是列出所有文件,通过管道传输到文本文件,然后我可以对其进行解析。这需要太长的时间...我有数以万计的文件。
我很乐意使用 AWS CLI、s3cmd、Boto...任何有效的方法。
您可以简单地使用LastModified
创建对象时 S3 自动附加的日期,而不是使用文件名(“密钥”) 。
要根据该日期列出最新的对象,您可以使用:
aws s3api list-objects --bucket my-bucket --query 'sort_by(Contents, &LastModified)[-1].Key' --output text
Run Code Online (Sandbox Code Playgroud)
要列出给定日期(我怀疑是 UTC 时区)以来的对象:
aws s3api list-objects --bucket my-bucket --query "Contents[?LastModified>='2021-01-29'].[Key]" --output text
Run Code Online (Sandbox Code Playgroud)
如果您希望通过 Python 执行此操作,则需要检索所有对象的列表,然后您可以解析对象键或 LastModified 日期。