【发布时间】:2018-04-24 02:36:43
【问题描述】:
我有一个非常大的桶(数十万个对象)。我有一条路径(比如说 s3://myBucket/path1/path2)。 /path2 获取也是文件夹的上传。因此示例可能如下所示:
s3://myBucket/path1/path2/v6.1.0
s3://myBucket/path1/path2/v6.1.1
s3://myBucket/path1/path2/v6.1.102
s3://myBucket/path1/path2/v6.1.2
s3://myBucket/path1/path2/v6.1.25
s3://myBucket/path1/path2/v6.1.99
S3 不考虑版本号排序(这是有道理的),但按字母顺序排列的列表中的最后一个不是最后一个上传的。在该示例中 .../v6.1.102 是最新的。
这是我目前所得到的:
aws s3api list-objects
--bucket myBucket
--query "sort_by(Contents[?contains(Key, \`path1/path2\`)],&LastModified)"´
--max-items 20000
所以这里的一个问题是 max-items 似乎是从存储桶中的所有文件中递归地按字母顺序开始的。 20000 确实可以访问我的文件,但是通过这么多文件是一个非常缓慢的过程。
所以我的问题是双重的:
1 - 这仍在搜索整个存储桶,但我只想将其缩小到 path2/ 。我可以这样做吗?
2 - 这仅列出对象,是否可以仅拉出路径列表?
基本上,最终目标是我只想要一个命令从上面的示例中返回最新的文件夹名称,例如“v6.1.102”。
【问题讨论】:
-
使用
head-object
标签: amazon-web-services amazon-s3 aws-cli