Как монтировать Google Bucket в качестве локального диска на экземпляре Linux с правами полного доступа

Используя пять строк ниже, установите gcsfuse на новый экземпляр Ubuntu14:

 export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s` echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO main" | sudo tee /etc/apt/sources.list.d/gcsfuse.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update sudo apt-get install gcsfuse 

Теперь создайте папку на локальном диске (эта папка должна использоваться как точка монтирования для Google Bucket ). Дайте этой папке полный доступ:

 sudo mkdir /home/shared sudo chmod 777 /home/shared 

Используя команду gcsfuse установите gcsfuse Google в папку монтирования, которую мы создали ранее. Но сначала укажите имена Google Buckets, которые связаны с вашим проектом Google:

 gsutil ls 

Проект Google, над которым я работаю, имеет одно ведро с именем «my_bucket». Зная имя ведра, я могу запустить команду gcsfuse которая будет монтировать my_bucket Bucket в локальной /home/shared монтажной папке:

 gcsfuse my_bucket /home/shared 

Выполнение этой команды регистрирует, что она прошла успешно:

 Using mount point: /home/shared Opening GCS connection... Opening bucket... Mounting file system... File system has been successfully mounted. 

Но теперь, когда я пытаюсь создать другую папку внутри сопоставленной /home/shared папки монтирования, я получаю сообщение об ошибке:

 mkdir /home/shared/test 

Ошибка:

 mkdir: cannot create directory '/home/shared/test': Input/output error 

Пытаясь исправить проблему, я успешно un-mount ее, используя:

 fusermount -u /home/shared 

и отобразите его обратно, но теперь с помощью другой командной строки gcsfuse :

 mount -t gcsfuse -o rw,user my_bucket /home/shared 

Но это приводит к точно такой же проблеме разрешения.

В конце концов я попытался исправить эту проблему, отредактировав файл конфигурации /etc/fstab с помощью:

 sudo nano /etc/fstab 

а затем добавьте строку в конец файла:

 my_bucket /home/shared gcsfuse rw,noauto,user 

но это не помогло решить эту проблему.

Что нужно изменить, чтобы предоставить всем пользователям полный доступ к сопоставленному ведомости Google, чтобы пользователи могли создавать, удалять и изменять файлы и папки, хранящиеся в Google Bucket?

Я видел ваш вопрос, потому что у меня была такая же проблема, и я также делал те же шаги, что и вы. Решение предоставить пользователю полный контроль над установленной облачной папкой:

Вы должны пойти в свое место в Google Cloude, найти «Сервисную учетную запись» и кликнуть на нее. введите описание изображения здесь

Затем вам нужно экспортировать ключевой файл вашей учетной записи службы (.json) (я создал новую учетную запись службы в консоли Google Cloud Shell, используя эту команду: gcloud auth application-default login И затем выполнил шаги, когда мне было предложено shell.)

Клик по созданию ключа и выберите JSON введите описание изображения здесь Загрузите файл .JSON на ваш Linux-сервер. Затем на вашем Linux-сервере запустите эту команду: gcsfuse -o allow_other --gid 0 --uid 0 --file-mode 777 --dir-mode 777 --key-file /path_to_your_keyFile_that_you_just_uploaded.json nameOfYourBucket /path/to/mount

Чтобы найти своего пользователя GID и UID пользователя root, войдите в корневой каталог на свой сервер и в тип терминала: id -u root для UID и id -g root для GID

Надеюсь, я помог, потому что я долго боролся, и ни один ресурс в Интернете действительно не помог. Приветствия.