【问题标题】:I want to get the latest file names under each directory of gcs我想获取gcs每个目录下的最新文件名
【发布时间】:2021-07-11 05:22:12
【问题描述】:

我想知道使用 gsutil ls 的每个目录下最新文件的路径。

像这样在循环中执行命令非常慢。

我希望最终的输出是

我该怎么做?

我想知道使用 gsutil ls 的每个目录下最新文件的路径。

shell脚本

for dir in dir_list[@];do
  file+=$(gsutil ls -R ${dir} | tail -n 1);
done

在循环过程中运行命令非常慢。

我希望最终的输出是

还有其他方法吗?

结果图片

gs://bucket/dir_a/latest.txt
gs://bucket/dir_b/latest.txt
gs://bucket/dir_c/latest.txt
gs://bucket/dir_d/latest.txt

【问题讨论】:

    标签: bash google-cloud-storage gsutil


    【解决方案1】:

    没有其他策略是有充分理由的:目录不存在。因此,您需要扫描所有文件,获取元数据,获取最后一个文件,然后为每个“相似前缀”执行此操作。

    前缀就是您所说的目录“/path/to/prefix/”。这就是为什么您只能在 GCS 中按前缀而不是按文件模式执行搜索的原因。

    因此,您可以想象构建一个自定义应用程序,该应用程序为每个不同的前缀(目录)创建一个专用于该前缀的并发进程(fork)。像这样,您可以执行并行化。写起来没那么简单,但你可以!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-02
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多