我正在尝试使用他们的JSON API通过多部分请求将图像发布到谷歌云存储,但我收到一个错误:
“代码”:400,
“message”:“Bucket是请求者付费桶但没有提供用户项目。”
这是我的要求:
POST /upload/storage/v1/b<my_bucket_here>/o?
uploadType=multipart&name=testPostman HTTP/1.1
Host: www.googleapis.com
Content-Length: 2139
Authorization: Bearer ya29.<my_token_here>
Cache-Control: no-cache
Postman-Token: 6fb40df7-3a0d-fda6-a94e-63365f594c9d
Content-Type: multipart/form-data; boundary=----
WebKitFormBoundary7MA4YWxkTrZu0gW
------WebKitFormBoundary7MA4YWxkTrZu0gW
Content-Disposition: form-data; name="data"; filename="profilephotos-
960x640.jpg"
Content-Type: image/jpeg
我试着去我的桶,并在那里指定项目IS。唯一看起来很奇怪的是Lifecycle部分,它是None,当我点击进行更改时,它会打开一个页面无法打开。这太奇怪了。
可以因为我不是所有者,而是项目的管理员吗? 已为存储桶启用计费。 请帮忙!已经花了3天时间。
答案 0 :(得分:4)
&#34;请求者支付&#34; Google云端存储的功能允许存储桶的所有者支付存储对象的费用,但存储桶的用户需要支付使用存储桶的费用。
一旦启用了请求者付款,每个请求都需要指定为该请求计费的项目。 only exceptions是:
resourcemanager.projects.createBillingAssignment
权限。否则,您需要通过加入网址参数userProject=myProjectId
向explicitly specify a project付费。因此,在您的情况下,请对您要调用的网址进行此更改:
POST / upload / storage / v1 / b / o? userProject = YOUR-PROJECT &amp; uploadType = multipart&amp; name = testPostman