0

我试图弄清楚如何:a)在子目录中的 Google Cloud Storage 上存储/插入对象 b)列出给定子目录的内容

我设法解决了如何在这里获取对象:Google Cloud Storage JSON REST API - Get object holding in a sub-directory

但是,相同的逻辑似乎不适用于这些其他类型的调用。

对于商店,这有效:

https://www.googleapis.com/upload/storage/v1/b/bucket-name/o?uploadType=media&name=foldername%2objectname

但它随后将 GCS 上的文件名存储为 foldername_filename,这不会改变功能但并不理想。

要列出存储桶中的对象,不确定嵌套目录的语法应该放在哪里:storage.googleapis.com/storage/v1/b/bucketname/o。

任何见解都非常感谢。

4

1 回答 1

0

首先要知道的是,GCS 没有目录或文件夹。它只是具有共享固定前缀的对象。gsutil 和 UI 都使用了一些功能来创建文件夹确实存在的错觉。

https://cloud.google.com/storage/docs/gsutil/addlhelp/HowSubdirectoriesWork

顺便说一句:要创建一个带有前缀的对象,您需要对对象名称进行 URL 编码,我记得%2F是以下编码/

https://cloud.google.com/storage/docs/request-endpoints#encoding

最后,要仅列出具有公共前缀的对象,您将使用prefix参数:

https://cloud.google.com/storage/docs/json_api/v1/objects/list#parameters

使用prefix=foo/bar/baz(编码后)将列出foo/bar/baz“文件夹”中的所有对象,注意这是递归的,它将包含foo/bar/baz/quux/object-name在结果中。要停在一个级别,您也想了解该delimiter参数。

于 2021-02-02T14:02:20.053 回答