在 appengine 之外的 gcs 存储桶上执行非递归列表的更简单方法

Easier way to do non-recursive list on gcs bucket outside appengine

我有一个 gcs 文件层次结构,在我的存储桶下有几个目录,每个目录都有大量文件。我想查询我的存储桶和 return 所有目录。

我目前不在 appengine 中,所以我正在使用 google-api-services-storage sdk,但是 list 查询似乎是 returning 每个叶文件。正如我在开头所说的,因为我的目录数量很少,但每个目录中的文件数量很大,我真的希望我在做清单时不需要触及每个目录中的内容。

(这么一说,我知道gcs中其实没有"directory",只是简单的文件对象,不同的命名层次,但在appengine中是允许gcs客户端设置是否做列表是否递归,查询执行得非常快。我想知道 appengine

之外是否有类似的东西

我在 document 上搜索过,但它似乎没有我可以配置查询的相关参数?

AE gcs 客户端正在使用分隔符和前缀选项(来自您提到的 document,尽管它使用 XML API)来模拟非递归文件夹列表.

您可以通过将前缀设置为要列出的 "folder" 路径并将分隔符设置为“/”(或您的路径分隔符)来实现。

此外,我建议查看 gcloud-java-storage 以获得更易于使用的 API,它不是特定于 AE 的。