我想知道如何:a)在Google Cloud Storage的子目录中存储/插入对象b)列出给定子目录的内容
我设法解决如何获得一个对象在这里:谷歌云存储JSON REST API -获取对象保存在子目录
然而,同样的逻辑似乎并不适用于这些其他类型的调用。
对于store,可以这样操作:
https://www.googleapis.com/upload/storage/v1/b/bucket-name/o?uploadType=media& name = foldername % 2的objectname
,但它随后将文件名存储在GCS上为foldername_filename,这不会改变功能,但不是很理想。
列出bucket中的对象,不确定嵌套目录的语法应该在这里:storage.googleapis.com/storage/v1/b/bucketname/o.
如有任何见地,不胜感激。
首先要知道的是GCS没有目录或文件夹。它只是拥有共享固定前缀的对象。gsutil和UI都使用了一些特性来创建文件夹确实存在的错觉。
https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork
有了这个方法:要创建一个带有前缀的对象,您需要对对象名称进行URL编码,我记得%2F
是/
的编码:
https://cloud.google.com/storage/docs/request-endpoints编码最后,要只列出具有共同前缀的对象,您可以使用prefix
参数:
https://cloud.google.com/storage/docs/json_api/v1/objects/list参数使用prefix=foo/bar/baz
(编码后)将列出foo/bar/baz
"文件夹"中的所有对象,注意这是递归的,它将在结果中包含foo/bar/baz/quux/object-name
。要在一个级别上停下来,您还需要阅读有关delimiter
参数的内容。