当我尝试在我的任何项目中连接到Google云存储桶时,我收到此错误oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: Bad Request
(所有项目之前都在运行)。
from gcloud import storage
client = storage.Client()
bucket = client.get_bucket(bucket_name)
我通过同事的笔记本电脑上的命令行登录了我的gcloud帐户,并且连接到Cloud Storage的脚本很好。然后我的同事在我的电脑上登录了他的gcloud帐户,这也不适合他。我们假设这是许多其他帖子引用的服务器时间问题或者我的计算机出了什么问题。
我们运行ntpdate
并得到8 Nov 12:00:38 ntpdate[3468]: no servers can be used, exiting
我们也使用了ntpd
,但无济于事。
如果有任何建议或我做错了什么,请告诉我。如果您需要更多详细信息来帮助我,请告诉我们!
Project in:Python 2.7 | 操作系统:MacOS Sierra v 10.12.1 | 谷歌云sdk:133.0.0
答案 0 :(得分:6)
我的解决方案是愚蠢和令人沮丧但我希望这有助于某人。
我已经使用gcloud检查了我的身份验证,并已使用这些命令撤消并重新登录
gcloud auth revoke
和gcloud auth login
然后按照之后的步骤进行身份验证。 这些步骤不起作用。
然后我花了几个小时的时间挖掘了Google不那么友好的文档并回到了这个页面:https://googlecloudplatform.github.io/google-cloud-python/stable/google-cloud-auth.html
如果您在本地开发,最简单的身份验证方法是使用Google Cloud SDK:
$ gcloud beta auth application-default login
请注意,此命令会为客户端库生成凭据。要验证CLI本身,请使用:
$ gcloud auth login
我还没有完成准备这两个命令之间的区别,但我的所有项目现在再次工作。祝你好运
简而言之:
使用gcloud beta auth application-default login