我需要将S3存储桶中许多子目录中的文件复制到本地计算机。文件名是自动生成的,如果没有先使用ls
就很难获得,但我知道目标文件始终是按日期创建顺序在子文件夹中的第二个文件。
有没有办法通过索引在s3 bucket子文件夹文件中引用文件?
我想用aws cli来做这件事,虽然我对其他建议持开放态度。
答案 0 :(得分:1)
我不知道在S3中如何列出第二个最旧的对象而不列出给定前缀的所有对象,然后按日期显式排序该列表。如果你需要这样做,那么这里有一些想法:
选项#2可能是最好的,因为它简单,快速,灵活(如果您的应用随着时间的推移而变化,您会发现您还需要知道第4个最旧的对象,或者第2个最新的对象对象)。
答案 1 :(得分:1)
您可以使用此方法获取给定存储桶/路径中第二个文件的名称:
aws s3api list-objects-v2 --bucket BUCKET-NAME --query 'Contents[1].Key' --output text
这也适用于BUCKET-NAME/PATH
。
但是,您提到您有许多子目录,因此如果您想避免执行完整的存储桶列表,则必须知道所有这些子目录的名称。