我遇到的问题几乎和这个人一模一样
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/