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

时间:2016-02-23 02:11:38

标签: google-app-engine google-cloud-storage

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

我目前在appengine之外,所以我使用的是google-api-services-storage sdk,但似乎list查询正在返回每个叶子文件。正如我在开始时所说的那样,我的目录号码相当小,但每个目录中的文件数量都很大,我真的希望在列表时我不需要触摸每个目录中的内容。

(通过说,我知道gcs中实际上没有"目录"只是简单的文件对象具有不同的命名层次结构但在appengine它允许gcs客户端设置是否递归地执行列表,并且查询执行速度非常快。我想知道在appengine

之外是否有类似的内容

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

1 个答案:

答案 0 :(得分:3)

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

您可以通过将前缀设置为"文件夹"的路径来实现这一点。列出分隔符并将分隔符设置为' /' (或者你的路径分隔符)。

此外,我建议您查看gcloud-java-storage以获取更易于使用的非特定于AE的API。