gsutil / gcloud 存储文件列表按日期降序排列?

44
没有办法从按日期降序排列的Google Cloud Storage存储桶中获取文件列表吗?这非常令人沮丧。我需要检查已上传的文件的状态,而存储桶有数千个对象。
“gsutil ls”没有标准Linux“-t”选项。
Google云控制台也会列出它,但不提供排序选项。
2个回答

80

我使用这个方法来解决问题:

gsutil ls -l gs://[bucket-name]/ | sort -k 2

这将输出完整列表,包括日期作为第二个字段,sort -k 2 然后按此字段进行排序。

这会以第二个字段为关键字,按照这个字段对列表进行排序。


1
这对我来说是最好的答案。 - Nam G VU
1
为什么这个有效的简短解释:ls输出中的第二个字段是一个时间戳,“-k 2”按此字段排序。 - Gerard
2
大桶需要注意的一个缺点是:在应用排序之前,必须下载整个项目列表。 - xaviert
这里实现了字母排序,如果您想按大小排序,则无法使用此方法。 - Soumitri Pattnaik
1
@NathanMcKaskle 我尝试了 sort -r -k 2,但问题在于“TOTAL: X objects...”行将首先出现。最后采取了 sort -k 2 | tail -n 2 | head -n 1 - Jason Fry
显示剩余3条评论

6

GCS仅支持按字典顺序排序。

作为一种解决方法,如果您可以给您的对象命名日期戳,那么这将为您提供一种按日期列出对象的方式。


1
我猜这是设计上的考虑?允许无限长的目录/存储桶? - Dhiraj Gupta
1
我一直在寻找这个功能(词典对象列表排序)的官方文档,但一直未能找到。您知道有哪些链接吗? - user895378
排序必须是确定性的,因为它们允许对结果进行分页,但不一定是按字母顺序排列(或可控制的?)。我很想看到一些官方文档,因为我还没有找到它。 - Sebastien Martin
3
我也在寻找关于这个行为的官方文件。我找到了这篇参考文献:https://cloud.google.com/storage/docs/listing-objects,“此页面向您展示了如何列出存储在云存储存储桶中的对象,这些对象按名称的字典顺序排序。”然而,这并不在官方API页面上:https://cloud.google.com/storage/docs/json_api/v1/objects/list - bboe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接