在 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 的。
我有一个 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 的。