raz*_*yed 2 ruby google-api-client google-cloud-storage
在谷歌云存储中,我在名为图像的根存储桶中放置了名为猫的存储桶。我使用 google-api-ruby-client gem 上传文件。我可以将文件上传到根存储桶“images”,但无法上传到“images/cats”。我知道谷歌云存储中的存储桶没有斜线的概念,所以我无法弄清楚如何指定嵌套存储桶的名称。
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'}
)
Run Code Online (Sandbox Code Playgroud)
这给出了错误NoMethodError: undefined method query_values for nil:NilClass。如果我只使用“图像”作为存储桶的值,则该代码有效。
我怎样才能使上传工作也适用于嵌套存储桶?
谢谢
Google Cloud Storage 没有真正的目录——它有一个平面命名空间。您可以通过在对象名称中使用“/”字符并在列出存储桶时使用前缀和分隔符查询来部分模拟目录。
您看到的问题是由存储桶名称不能包含“/”这一事实引起的。尝试使用以“cats/”开头的存储桶“图像”和对象名称。