微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想获取gcs每个目录下的最新文件名

如何解决我想获取gcs每个目录下的最新文件名

我想知道每个目录下最新文件的路径,使用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

解决方法

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。