google gsutil 将 ls 限制到给定的深度级别

google gsutil limit ls to a given depth level

我需要弄清楚存储桶上有哪些子文件夹,以便决定要同步的路径。

ls -r gs://<my_bucket>/**

returns 所有文件和文件夹,我的树深度 >10 那里!!

如何只获取文件夹和子文件夹的列表,直到最终深度为 3,与 find -maxdepth 参数一样?

提前致谢

根据 documentation 没有提到这样的命令来列出 folders/subfolders 在 gsutil 中使用最大深度。

要获得 top level objects of a bucket using node.js,可以通过 API 完成,如前所述:

`const [files, nextQuery, apiResponse] = await storage.bucket(bucketName).getFiles({autoPaginate: false, delimiter: "/", prefix: ""});`

有关更多信息,您可以参考 link and github case,其中讨论了类似的问题。

This command is mentioned as a trick : gsutil ls -l gs://bucket_name/folder_name | xargs -I{} gsutil du -sh {}

There's no --max-depth support in gsutil du. You could write a script that lists the first-level folder names, and then iterate over those folders and run gsutil ls -l $folder/*