Невозможно переместить файлы в подключенное хранилище gscfuse (gcloud) - PullRequest
0 голосов
/ 06 февраля 2020

У меня проблема почти такая же, как у этого парня

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

, за исключением того, что, когда они решили проблему, они не дали достаточно подробностей, чтобы его решение. У меня есть смонтированное хранилище на экземпляре виртуальной машины gcloud, но я не могу записать файл в хранилище. Кажется, моя проблема в том, что я не предоставил Google свои учетные данные для аутентификации. Я попытался переместить учетные данные, которые я использовал на своем Ma c, на компьютер 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/

1 Ответ

1 голос
/ 07 февраля 2020

Мне удалось решить эту проблему следующим образом: мне пришлось go в облачные области доступа к API и проверить в конфигурации виртуальной машины, что у нее есть чтение и запись или полный доступ к хранилищу. Это включало нажатие edit на консоли gcloud, в котором перечислены мои экземпляры. Внизу страницы было ограничение на хранение, которое я изменил на «полный». Это сделал это.

...