я использую gcsfuse
внутри Google Compute Engine. Я смонтировал папку с облачным хранилищем, но не смог создать в ней какой-либо файл:
touch t1
с ошибкой:
touch: cannot touch 't1': Input/output error
Решение проблемы - дать Объем доступа к Cloud API: хранилище: чтение / запись
Как изменить области доступа к облачному API в GCP Compute Engine без остановки экземпляра? Пожалуйста, предоставьте мне решение для этого iisue.
Заранее спасибо!
Похоже, у вас недостаточно прав GCS. Взгляните на документация для gcsfuse
. Если вы используете сервисную учетную запись на виртуальной машине GCE, обязательно настройте виртуальную машину с storage-full
область доступа.
Вы можете попробовать исправить это так:
определить переменную среды, которая содержит путь к учетным данным учетной записи службы при вызове gcsfuse
из командной строки:
GOOGLE_APPLICATION_CREDENTIALS = /root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
использовать key_file
возможность достичь той же цели в fstab
как это задокументировано Вот.
Кроме того, вам нужно использовать переменную среды или key_file
вариант, даже если вы настроили учетную запись службы на виртуальной машине, используя:
gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json
Пожалуйста, обновите свой вопрос, указав свои шаги, команды и полные результаты, если у вас все еще есть проблема.