-1

我遇到的问题几乎和这个人一模一样

https://github.com/GoogleCloudPlatform/gcsfuse/issues/288

除了当他们解决问题时,他们没有提供足够的解决方案细节。我在 gcloud VM 实例上安装了一个存储桶,但我无法将文件写入存储桶。看来我的问题是我没有向 Google 提供我的身份验证凭据。我尝试将我在 Mac 上使用的凭据移到 Linux 计算机上,但到目前为止没有任何影响。这是确切的语法:

str1 = "/home/kylefoley/byu_corpus_small/codes/My_Project_999.json"
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = str1
key = "9999"

我已经使用 gcsfuse 成功安装了存储桶,并且可以从中读取文件,但是当我尝试向其中写入文件时,出现以下错误:

Traceback (most recent call last):
  File "build_index.py", line 638, in <module>
    determine_fork()
  File "build_index.py", line 635, in determine_fork
    main_fork(make_changes, len(rem_files), **kwargs)
  File "build_index.py", line 590, in main_fork
    save_iweb_pickle(dct, 'done_forks')
  File "/home/kylefoley/byu_corpus_small/code/byu_globals.py", line 27, in save_iweb_pickle
    pi.save_pickle(obj, name, 1)
  File "/home/kylefoley/byu_corpus_small/code/pickling.py", line 55, in save_pickle
    temp = open(name, "wb")
OSError: [Errno 5] Input/output error: '/mnt/disks/temp_dir/fix_mistakes/done_forks.pkl'

上述作者解决了这个问题

我很抱歉。你是对的。我误解了身份验证的工作原理。一旦我使用 gcloud auth login 一切都按预期工作。

但我无法理解他的意思。我认为这与这个模块有关:

from oauth2client.client import GoogleCredentials

但我无法弄清楚如何处理该模块。顺便说一句,我的挂载点是:

/mnt/disks/temp_dir/
4

1 回答 1

1

我能够通过以下方式解决该问题:我必须转到 Cloud API Access Scopes 并在 VM 配置下验证它是否具有读写或完全存储访问权限。这涉及在列出我的实例的 gcloud 控制台上按编辑。在页面底部,有存储限制,我将其更改为“满”。做到了。

于 2020-02-07T08:23:53.773 回答