尽管全新安装和正确的凭据,Gsutil仍然会出现401错误

时间:2017-03-08 19:11:10

标签: google-cloud-storage google-cloud-platform gcloud gsutil

我已经通过我的组织将gsutil与Google云一起使用了近一年而没有任何问题。今天早上,当我尝试使用任何gsutil命令时,我收到以下错误:

401 Anonymous users does not have storage.objects.list access to bucket <my-bucket>.

我尝试过:

  • 通过gcloud以及curl https://sdk.cloud.google.com | bash卸载并重新安装pip install -U gcloud gsutil

  • 我在重新安装之前和之后删除了.boto文件。

  • 我尝试过安装anaconda环境的内部和外部。请注意,这两种配置之前都没有问题

  • 在重新安装之前,我从gcloud

  • 删除对~/.bash_profile的所有引用

gsutil version -l的输出:

gsutil version: 4.22
checksum: 2434a37a663d09ae21d1644f64ce60ca (OK)
boto version: 2.42.0
python version: 2.7.12 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:43:17) [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)]
OS: Darwin 15.6.0
multiprocessing available: True
using cloud sdk: True
config path: /Users/<username>/.boto
gsutil path: /Users/<username>/google-cloud-sdk/platform/gsutil/gsutil
compiled crcmod: True
installed via package manager: False
editable install: False

gcloud info

的输出
Google Cloud SDK [146.0.0]

Platform: [Mac OS X, x86_64]
Python Version: [2.7.12 |Continuum Analytics, Inc.| (default, Jul  2 2016, 17:43:17)  [GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)]]
Python Location: [/Users/<username>/anaconda/envs/tensorflow_source/bin/python2]
Site Packages: [Disabled]

Installation Root: [/Users/<username>/google-cloud-sdk]
Installed Components:
  core: [2017.02.28]
  core-nix: [2016.11.07]
  gcloud-deps: [2017.02.28]
  gcloud: []
  gsutil-nix: [4.18]
  gsutil: [4.22]
  bq: [2.0.24]
  gcloud-deps-darwin-x86_64: [2017.02.21]
  bq-nix: [2.0.24]
System PATH: [/Users/<username>/anaconda/envs/tensorflow_source/bin:/Users/<username>/google-cloud-sdk/bin:/Users/<username>/anaconda/bin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/<username>/google-cloud-sdk/bin:/Users/<username>/anaconda/bin:/opt/local/bin:/opt/local/sbin]
Cloud SDK on PATH: [True]
Kubectl on PATH: [False]

Installation Properties: [/Users/<username>/google-cloud-sdk/properties]
User Config Directory: [/Users/<username>/.config/gcloud]
Active Configuration Name: [jared]
Active Configuration Path: [/Users/<username>/.config/gcloud/configurations/config_jared]

Account: [<email>]
Project: [<project-name>]

Current Properties:
  [core]
    project: [<project-name>]
    account: [<email>]
    disable_usage_reporting: [False]
  [compute]
    region: [us-east1]
    zone: [us-east1-c]

Logs Directory: [/Users/<username>/.config/gcloud/logs]
Last Log File: [/Users/<username>/.config/gcloud/logs/2017.03.08/14.00.35.867536.log]

在运行gsutil并使用我的个人凭据后,从计算实例中使用gcloud auth login也正在运行,因此我知道这不是我帐户的问题。

有谁知道我能做些什么来解决这个问题?

另一个观察结果:文件~/.boto为空白,另一个文件路径~/.config/gcloud/legacy_credentials/<email>/.boto只有我的凭据Oauth令牌。

1 个答案:

答案 0 :(得分:0)

嗯,我得到了它的工作,不确定这个答案是否适用于其他任何人,但我会发布我做的以防万一。

今天早上我删除了与google cloud(rm -rf ~/google-cloud-sdk && rm -rf ~/.config && rm ~/.boto)相关的所有文件。对我而言,~/.config文件夹中只有一个google云文件夹,但您可能需要检查以确保在删除之前没有其他任何内容。

然后我重新启动计算机并通过curl https://sdk.cloud.google.com | bash重新安装gcloud并关闭并重新打开终端,而不是运行exec -l $SHELL,但我认为这也是一样的。运行gcloud init后一切正常。

我仍然不确定这里发生了什么。