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

Posted

技术标签:

【中文标题】gsutil / gcloud 存储文件列表排序日期降序?【英文标题】:gsutil / gcloud storage file listing sorted date descending? 【发布时间】:2018-08-09 06:53:25 【问题描述】:

是否无法从按日期降序排序的 Google Cloud Storage 存储桶中获取文件列表?这非常令人沮丧。我需要检查已上传文件的状态,并且存储桶中有数千个对象。

gsutil ls 没有标准的 linux -t 选项。

Google 云控制台也列出了它,但不提供排序选项。

【问题讨论】:

【参考方案1】:

我将其用作解决方法:

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

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

【讨论】:

这是对我最好的回答。 简短解释为什么会这样:ls 输出中的第二个字段是时间戳-k 2 按此字段排序。 对于大存储桶需要注意的一个缺点:它必须先下载整个项目列表,然后才能应用排序。 这会按字母排序,所以如果你想按大小排序,这不起作用。 这是按最旧的第一个排序,我该如何反转它?【参考方案2】:

GCS 支持的唯一排序是字典序。

作为一种解决方法,如果您可以使用日期戳为对象命名,那么您可以按日期列出对象。

【讨论】:

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

以上是关于gsutil / gcloud 存储文件列表排序日期降序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 gcloud 存储桶中附加超过 33 个文件?

通过 GSUTIL 将文件从 Windows 10 文件夹上传到 Gcloud 存储桶时出现问题

如何在 Node.js 中将文件上传到 GCloud?

不使用 gcloud 实用程序从 docker 容器访问 GCP 云存储桶

zipfile 写入在 gcloud 中找不到文件

无法将本地文件夹同步到 gcloud