Предлагаемый вариант решения применен в Linux Mint xfce 18.1
Если Вы тоже искали приемлемый для себя вариант подключения Google Drive таким образом, чтобы с ним можно было работать в файловом менеджере, то убедились, что:
а) декстопного клиента для Linux Google не предоставляет;
б) предлагаемые решения либо, в конечном итоге, коммерческие, либо связаны с глубоким погружением в синтаксис командной строки.
Имеется способ, связанный с установкой gnome-control-center и gnome-online-accounts. Однако установить эти пакеты в систему будет мало, потребуется ещё внести некоторые изменения, ознакомившись с которыми у меня не возникло желания ставить эксперимент на стабильно функционирующей системе. Попытка добиться результата на тестовой системе успехом не увенчалась, так как, несмотря на получение разрешения от аккаунта Google, никакой записи в сетевых учётных записях так и не появилось. Кого интересует, можете ознакомиться с материалами, изложенными на bosha.ru и ualinux.com, первоисточником которых, похоже, является англоязычная публикация на webupd8.org.
Предлагаемое на многих сайтах решение, предусматривающее установку пакета google-drive-ocamlfuse с репозитория alessandro-strada у меня не нашло практического применения, так как:
1) заявленной авторами публикаций синхронизации мной не обнаружено.
Графического индикатора google-drive-ocamlfuse не имеет, но из индикации активности сетевых соединений видно, что нулевая скорость скачивания (D: 0 bytes/s) свидетельствет о том, что содержимое моего Drive Google не копируется на компьютер.
Если Вы тоже искали приемлемый для себя вариант подключения Google Drive таким образом, чтобы с ним можно было работать в файловом менеджере, то убедились, что:
а) декстопного клиента для Linux Google не предоставляет;
б) предлагаемые решения либо, в конечном итоге, коммерческие, либо связаны с глубоким погружением в синтаксис командной строки.
Имеется способ, связанный с установкой gnome-control-center и gnome-online-accounts. Однако установить эти пакеты в систему будет мало, потребуется ещё внести некоторые изменения, ознакомившись с которыми у меня не возникло желания ставить эксперимент на стабильно функционирующей системе. Попытка добиться результата на тестовой системе успехом не увенчалась, так как, несмотря на получение разрешения от аккаунта Google, никакой записи в сетевых учётных записях так и не появилось. Кого интересует, можете ознакомиться с материалами, изложенными на bosha.ru и ualinux.com, первоисточником которых, похоже, является англоязычная публикация на webupd8.org.
Предлагаемое на многих сайтах решение, предусматривающее установку пакета google-drive-ocamlfuse с репозитория alessandro-strada у меня не нашло практического применения, так как:
1) заявленной авторами публикаций синхронизации мной не обнаружено.
Графического индикатора google-drive-ocamlfuse не имеет, но из индикации активности сетевых соединений видно, что нулевая скорость скачивания (D: 0 bytes/s) свидетельствет о том, что содержимое моего Drive Google не копируется на компьютер.
Решение предусматривает монтирование Google Drive как файловую систему. Но подобное решение, но позволяющее работать не с одним, а со многими Google Drive описано ниже;
2) при попытке отмонтировать примонтированный Google Drive моя система выдаёт ошибку и далее данный процесс переходит в состояние бесконечного, даже в том случае, если принудительно "убит" процесс google-drive-ocamfuse.
Если пожелаете использовать описанное ниже решение, то это потребует от Вас некоторой внимательности и терпения. Результат напоминает работу с папками облака pCloud, которые не включены в список синхронизируемых клиентом папок компьютера или работу с Диском Яндекс по webdav.
Для осуществления подключения Вам потребуется пакет rclone-browser и утилита rclone. Лично у меня Rclone browser нашёлся через Synaptic
Если у Вас такого пакета нет (по причине отсутствия подключения к источнику приложений от webupd8), то необходимый deb-пакет можно скачать. На момент написания этой публикации имелись версии:
Само по себе это приложение не даст возможности подключиться к Google Drive. Для его работы необходима упомянутая выше утилита rclone, которую можно получить на сайте rclone. Выберите необходимую Вам разрядность.
Скачанный архив zip имеет в своём составе 4 файла: 2 файла "прочитай меня" (README) и 2 файла, которые потребуется установить в систему. Файлы README, указывающие как это сделать, написаны на английском языке. Поэтому приведу Вам порядок действий на русском.
1. Скопировать бинарный файл.
В файле README указана команда sudo cp rclone /usr/bin/
Поскольку не являюсь "крутым гуру", то делаю для себя как попроще, т.е. запускаю Midnight Commander с правами суперпользователя – sudo mc в терминале – или GNOME Сommander от имени root (через меню "Файл") и помещаю файл rclone в папку /usr/bin
Далее в терминале выполняю 2 команды:
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
2. Установить в систему файл справки по пользованию rclone.
В файле README указаны команды:
sudo mkdir -p /usr/local/share/man/man1
sudo cp rclone.1 /usr/local/share/man/man1/
Опять же (по рабоче-крестьянски) запускаю Midnight Commander с правами суперпользователя – sudo mc в терминале – или GNOME Commander от имени root (через меню "Файл") и
а) в папке /usr/local/share/man создаю новую папку man1;
б) файл rclone.1 помещаю в созданную папку man1.
Далее в терминале выполняю команду sudo mandb
В ответ получаю:
Обработка справочных страниц в /usr/local/man...
Обновление индексного кэша для пути `/usr/local/man/man1'. Ждите...завершено.
Проверка побочных cat в /usr/local/man...
Проверка побочных cat в /var/cache/man/oldlocal...
В 1 man-подкаталоге содержатся более новые справочные страницы.
Добавлена 1 справочная страница.
Добавлено 0 побочных cat-страниц.
Вычищено 5 старых записей базы данных.
На этом установка rclone завершена.
3. В терминале выполняю rclone config и ...
rclone config
2017/03/23 10:11:46 NOTICE: Config file "/home/manager/.config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q>
Т.е., никакого файла настроек rclone в системе не наблюдается. Что ж, запускаем файловый менеджер, включаем отображение скрытых файлов и папок удобным для Вас способом (через меню "Вид" или комбинацией клавиш Ctrl и h), и создаём в папке .config папку rclone, а в ней – файл rclone.conf
Снова выполняю в терминале rclone config
Наконец-то, процесс пошёл:
rclone config
No remotes found - make a new one
n) New remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
n/r/c/s/q>
У меня – новое подключение поэтому выбираю n и при запросе имени (name) указываю Google:
n/r/c/s/q> n
name> Google
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Drive
\ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph, Minio)
\ "s3"
3 / Backblaze B2
\ "b2"
4 / Dropbox
\ "dropbox"
5 / Encrypt/Decrypt a remote
\ "crypt"
6 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
7 / Google Drive
\ "drive"
8 / Hubic
\ "hubic"
9 / Local Disk
\ "local"
10 / Microsoft OneDrive
\ "onedrive"
11 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
12 / SSH/SFTP Connection
\ "sftp"
13 / Yandex Disk
\ "yandex"
Storage>
Здесь в запросе Storage указываю цифру, соответствющую моему подключению. Так как подключаюсь к Google Drive, то моя цифра будет 7. При дальнейших запросах client_id и client_secret соглашаюсь с предлагаемыми вариантами оставить поля пустыми, т.е. просто жму на Enter:
Storage> 7
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
На предложение автоматически сконфигурировать подключение отвечаю Yes (Да), т.е. буквой y и далее
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
2017/03/23 10:15:37 ERROR : Failed to save new token in config file: section 'Google' not found
Здесь говорится о том, что браузер должен открыться автоматически, а ели он этого не сделал, то необходимо перейти по ссылке, авторизоваться в своём аккаунте Google и получить для rclone код.
К счастью, браузер у меня открылся сам и я подтверждаю запрос на доступ:
Далее вижу, что система получила какой-то токен
[Google]
client_id =
client_secret =
token = {"access_token":"ya29.Gls...0h","token_type":"Bearer","refresh_token":"1/OGPpVINwFr0CTThHV3XYXfM4RF1eV4iQuvirWTrINro","expiry":"2017-03-23T11:15:37.65398086+03:00"}
Примечания.
Указанный выше код и есть содержание файла rclone.conf, расположенного в скрытой папке .config/rclone. Строка токена представляет собой длинную последовательность букв и цифр и в примере выше сокращена посредством замены значительной её части на многоточие.
В рассматриваемом случае под токеном следует понимать замещение объекта неким обозначением/идентификатором (часто просто целым числом или строкой). Например, идентификатор сессии является классическим токеном. Токены широко применяются в системах авторизации/идентификации и т.п.
Технически токены обычно реализуются в виде записи в базе данных. При этом токен является идентификатором записи о данных пользователя или предоставленного доступа. В этом случае токен вычисляется как хэш комбинации данных пользователя (логина), времени создания, ключей сервера и т.п.
Идея использования токена заключается в том, чтобы вместо передачи большого количества данных предоставить токен, на основании которого будут даны полномочия на выполнение различных операций. Это и удобно, и способствует снижению рисков компрометации данных.
и, наконец, на запрос что делать дальше из вариантов
y – всё в порядке
e – редактировать подключение
d – удалить подключение
отвечаю y и мне rclone отображает сведения о подключении
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
Google drive
с запросом дальнейших действий. Поскольку у меня всё получилось, то выбираю q (выход из конфигурации)
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
Закрываю терминал и обращаюсь к браузеру Rclone, который у меня отобразился в разделе "Интернет" главного меню под наименованием Rclone Browser.
Внешний вид его несколько аскетичен. Так как у меня настроено подключение Google, то я его и наблюдаю в главном окне.
В нижней его части имеются кнопки "Config", "Refresh" и "Open". Назначение Config понятно, о Refresh пока что не имею никакого понятия, а вот "Open" вызывает явный интерес.
Нажимаю на "Open" и ... вот оно, счастье-то! Вижу свой Google Drive.
Обращаю своё внимание на кнопку "Mount" на верхней панели. Точно как в кинокомедии "Иван Васильевич меняет профессию", терзают меня смутные сомнения (у Шпака – магнитофон, у посла – медальон), что мне будет выдан запрос на точку монтирования моего Google Drive.
Для работы с облаками у меня выделена целая папка Clouds, поэтому создаю в ней ещё одну папку Google и указываю её в запросе на монтирование.
Неужели снова счастье привалило?
Диск Google смонтирован и доступен в менеджере файлов.
Попробуем забросить туда какой-либо файл, например, Хакер.pdf
Странно, в менеджере файлов в Google Drive я его наблюдаю, ход процесса копирования – тоже, а в браузере Rclone он отсутствует.
Вот теперь становится понятным назначение непонятной кнопки "Refresh". Жму на неё и Хакер.pdf появляется в списке файлов.
Точно так же пробую удалить файл(ы). Если удалять через менеджер файлов, то удаление может происходить после некоторого "размышления". Но так как эта ситуация знакома мне по работе с Диском Яндекс по webdav, то тревоги не вызывает.
Кстати говоря, в самом браузере Rclone через правое контекстное меню доступны многие команды. Правда они на английском языке. Но кто понимает – разберётся. Кроме того, ряд команд можно осуществить через кнопки верхнего меню.
Если попытаться закрыть браузер Rclone, то система выдаст предупреждение, что в настоящее время выполняется какое-то задание, и задаст вопрос "Действительно ли желаете остановить задание и выйти".
Можете смело отвечать "Yes", так как если обратиться к вкладке заданий, то обнаружится, что процедура монтирования Google Drive в указанную папку и является этим самым выполняемым заданием.
После закрытия браузера Rclone примонтированный Google Drive отключается, а связанные с ним процессы прекращаются.
При работе с папками ситуация будет точно такая же как и при работе с файлами. При помещении папки на Google Drive (на рисунках ниже это папка 14.03) она появится сразу в менеджере файлов и при подключении к Google Drive через обычный браузер. Для того, чтобы она отобразилась в браузере Rclone необходимо нажать на кнопку "Refresh".
Определённой степенью полезности обладает кнопка верхней панели "Get Size". Если курсор мыши установлен в корень Google Drive, то при нажатии на неё отобразится занятый объём Вашего диска. Если курсор мыши поставить на папку и вызвать "Get Size", то отобразится занятое папкой место на диске.
Ну вот как-то так ... Остальное, при желании, Вы можете постичь в процессе работы (или дальнейших экспериментов).
Похоже, что таким образом могу подключить ещё один или даже два и более дисков Google, указывая им различные имена подключения и монтируя Google Drive в разные папки файловой системы компьютера.
Если выделить только одну папку Google Drive и нажать кнопку "Mount", то в менеджере файлов в качестве сетевого диска будет примонтирована только выделенная папка.
При нажатии кнопки "Config" будет активизирована процедура внесения изменений в текущие настройки. С этим мы уже сталкиваись при создании первого подключения.
Current remotes:
Name Type
==== ====
Google drive
Далее следует запрос действий:
e – изменить текущее подключение
n – новое подключение
d – удалить подключение
r – переименовать подключение
c – копировать подключение
s – установить пароль на конфигурацию
q – выход
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q>
Вероятно, наиболее востребованной операцией будет переименование подключения. Печатаем r и нажимаем Enter. Если имеется несколько подключений, то необходимо указать либо его номер, либо ввести имя подключения. Например, переименуем подключение Google-3
Choose a number from below, or type in an existing value
1 > Google-1
2 > Google-2
3 > Google-3
4 > Google-4
remote> 3
Enter new name for "Google-3" remote.
name>
Осталось напечатать новое имя для подключения Google-3, нажать Enter, а затем последовательно водить q для выхода из режима изменения конфигунации.
Но можно сделать и проще. В зависимости от используемого Вами графического окружения (xfce, MATE, Cinnamon), а также версии системы (18 или ниже), откройте файл конфигурации в текстовом редакторе (при этом включите отображение скрытых файлов в меню "Вид") или введите в терминале команду на запуск текстового редактора Вашей системы.
Пример:
xed /home/manager/.config/rclone/rclone.conf
gedit /home/manager/.config/rclone/rclone.conf
pluma /home/manager/.config/rclone/rclone.conf
Найдите запись в квадратных скобках, которую нужно переименовать. Помните?
[Google-3]
client_id =
client_secret =
token = {"access_token":"ya29.Gls...
Вместо [Google-3] укажите новое имя, например, [Disk-3]
Сохраните файл. При очередном запуске Rclone Browser Вы увидите, что вместо старого будет отображено новое имя.
Кроме Google Drive, как было указано при конфигурировании подключения, ангалогично можно подключаться и работать со своими бесплатными облаками Dropbox, HubiC, Microsoft OneDrive, Yandex Disk.
Увы, но полученный результат не был закономерным следствием практического применения глубокого понимания процессов в системе. Это явилось итогом действия цепи случайностей. Случайно был предпринят поиск с целью выяснения: не появилось ли какого-либо способа подключения к Google Drive через бесплатное приложение. Случайно по результатам поиска в одной из публикаций было обращено внимание на rsync, а затем на rclone. А далее – случайно простое любопытство и русский "авось". Воистину ...
Спасибо за полезную статью!
ОтветитьУдалить