上传到 google 云存储中的嵌套存储桶

Uploading to nested buckets in google cloud storage

在 google 云存储中,我在名为 images 的根存储桶中有一个名为 cats 的存储桶。我正在使用 google-api-ruby-客户端 gem 上传文件。我可以将文件上传到根存储桶 'images',但上传到 'images/cats' 不起作用。我知道 google 云存储中的存储桶没有斜杠的概念,所以我不知道如何指定嵌套存储桶的名称。

result = client.execute(
  api_method: api.objects.insert,
  media: media,
  parameters: {
    uploadType: 'resumable',
    bucket: 'images/cats',  #This does not work !. Just images works.
    name: 'kitty.jpeg',
  },
  body_object: {contentType: 'image/jpeg'}
)

这给出了错误 NoMethodError: undefined method query_values for nil:NilClass。如果我只使用 'images' 作为桶的值,代码就可以工作。

我怎样才能让嵌套存储桶也能上传?

谢谢

Google Cloud Storage 没有真正的目录 - 它有一个平面命名空间。您可以通过在对象名称中使用“/”字符并在列出存储桶时使用前缀和分隔符查询来部分模拟目录。

您看到的问题是由存储桶名称不能包含“/”这一事实引起的。尝试改用存储桶 "images" 和以 "cats/".

开头的对象名称