Google cloud platform 使用Google云平台存储桶的凭据无效
我们在谷歌云平台上有一个水桶来管理图片。 我正试图上传一张图片到它使用卷曲 与链接的官方文档相对应,这是我使用的Curl命令:Google cloud platform 使用Google云平台存储桶的凭据无效,google-cloud-platform,oauth-2.0,Google Cloud Platform,Oauth 2.0,我们在谷歌云平台上有一个水桶来管理图片。 我正试图上传一张图片到它使用卷曲 与链接的官方文档相对应,这是我使用的Curl命令: curl -X POST --data-binary @cat.jpeg \ -H "Authorization: Bearer A_STRING_SUPPOSED_TO_BE_A_KEY" \ -H "Content-Type: image/jpeg" \ "https://storage.go
curl -X POST --data-binary @cat.jpeg \
-H "Authorization: Bearer A_STRING_SUPPOSED_TO_BE_A_KEY" \
-H "Content-Type: image/jpeg" \
"https://storage.googleapis.com/upload/storage/v1/b/upload_zone/o?uploadType=media&name=cat"
这就是我们得到的答案:
{
"error": {
"code": 401,
"message": "Invalid Credentials",
"errors": [
{
"message": "Invalid Credentials",
"domain": "global",
"reason": "authError",
"locationType": "header",
"location": "Authorization"
}
]
}
}
我们的密钥似乎无效,我们不确定使用什么作为授权密钥。我们在哪里可以找到使用Google云平台Bucket所需的OAUTH2.0密钥,我们是否需要在某处生成它
编辑:
我们已经使用OAuth2.0-playway生成了一个密钥,它成功了!但是密钥每3000秒过期一次…如果您已经使用gcloud sdk通过了Google的身份验证,您可以获得如下密钥:
-H "Authorization: Bearer $(gcloud auth print-identity-token)"
因此,使用上面的示例,这应该是可行的:
curl -X POST --data-binary @cat.jpeg \
-H "Authorization: Bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: image/jpeg" \
"https://storage.googleapis.com/upload/storage/v1/b/upload_zone/o?uploadType=media&name=cat"
如果我没有登录呢?我不能将其作为API密钥复制吗?如果您只复制它,该密钥将过期。这取决于你需要钥匙多久。好的,谢谢你,伙计。你能给我一个关于如何使用cURL/HTTP请求登录谷歌云平台的参考吗?我处理的唯一方法是使用服务密钥(或服务密钥模拟)对会话gcloud进行身份验证,然后如上所述使用curl,或者使用python脚本进行身份验证的API调用,完全消除curl。但最终,您仍然需要首先进行身份验证。下面是一本关于API处理的入门读物:使用
curl
是开发人员的解决方案,而不是一个好的长期解决方案。编写使用服务帐户JSON密钥文件授权请求的代码。谷歌云存储需要OAuth令牌。令牌的最大生存期为3600秒。