Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 使用Google云平台存储桶的凭据无效_Google Cloud Platform_Oauth 2.0 - Fatal编程技术网

Google cloud platform 使用Google云平台存储桶的凭据无效

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命令:

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秒。