我想获取gcs每个目录下的最新文件名
Posted
技术标签:
【中文标题】我想获取gcs每个目录下的最新文件名【英文标题】:I want to get the latest file names under each directory of 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
【问题讨论】:
【参考方案1】:没有其他策略是有充分理由的:目录不存在。因此,您需要扫描所有文件,获取元数据,获取最后一个文件,然后为每个“相似前缀”执行此操作。
前缀就是您所说的目录“/path/to/prefix/”。这就是为什么您只能在 GCS 中按前缀而不是按文件模式执行搜索的原因。
因此,您可以想象构建一个自定义应用程序,该应用程序为每个不同的前缀(目录)创建一个专用于该前缀的并发进程(fork)。像这样,您可以执行并行化。写起来没那么简单,但你可以!
【讨论】:
以上是关于我想获取gcs每个目录下的最新文件名的主要内容,如果未能解决你的问题,请参考以下文章