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 存储文件列表排序日期降序?的主要内容,如果未能解决你的问题,请参考以下文章

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

在 python 脚本中运行 gcloud auth 和 gsutil 命令

如何让 gsutil 在 docker 容器中使用 gcloud 凭据

cloud/gsutil 将文件从实例复制到存储桶

Xcode 更新破坏了 gcloud 和 gsutil

Google Cloud Storage:如何使用 gsutil 获取存储桶/文件夹中的新文件列表