Ошибка ввода / вывода OSError при записи в смонтированную файловую систему - PullRequest
0 голосов
/ 27 марта 2019

Я создал Google Cloud Storage Bucket и подключил его к своей виртуальной машине, используя:
gcsfuse my-bucket /path/to/mount/point
Когда я набираю df -H, он отображается как смонтированная файловая система.
У меня есть следующая проблема:

Если я загружаю файл в корзину с помощью веб-консоли GCP, я вижу его из виртуальной машины. Однако, если я пытаюсь создать каталог из виртуальной машины в смонтированную файловую систему mkdir /path/to/mount/point/test, он говорит:

mkdir: cannot create directory ‘/path/to/mount/point/test’: Input/output error

Ответы [ 2 ]

1 голос
/ 29 марта 2019

Я нашел причину.Я включил параметры отладки, как предлагали другие.Спасибо.К сожалению, логи не сказали мне много.К счастью, у меня была еще одна ВМ, и я тестировал там, и она работала нормально (монтирование + чтение / запись в корзину).Я понял, что это не разрешения на стороне ведра.Виртуальная машина была создана с «Разрешить доступ по умолчанию», который только для чтения предоставляет «Хранилище».Я предоставил чтение / запись для хранения.Можно также указать «Разрешить полный доступ ко всем облачным API», хотя лучше не предоставлять все разрешения, если они вам не нужны.

0 голосов
/ 28 марта 2019

Попробуйте использовать следующую команду, и она покажет больше информации.

gcsfuse --foreground --debug_gcs --debug_http \
        --debug_fuse --debug_invariants \
        --key-file=/src/gcloud_service_account.json \
        my-bucket /path/to/mount/point

Вы можете увидеть такое сообщение об ошибке

"code": 403, "message": "Access Not Configured. The API (Cloud Storage JSON API) is not enabled for your project. Please use the Google Developers Console to update your configuration."

Если это так, вам нужно включить этот API для этого экземпляра.

...