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 存储桶时出现问题