Google предоставляет студентам МИЭМа неограниченное пространство на Google Drive, что открывает огромные возможности для синхронизации важных файлов и хранения бекапов. Однако работа с пространством Google по умолчанию возможна лишь в браузере, что сильно ограничивает возможности для автоматического взаимодействия с облаком. Эту проблему поможет решить Rclone.
Rclone - это утилита командной строки с открытым исходным кодом для управления файлами на облачных дисках. Помимо Google Drive, Rclone поддерживает более 40 различных облачных хранилищ даннных, полный список которых вы можете посмотреть, перейдя по этой ссылке.
Вы можете узнать больше на официальном сайте Rclone.
Rclone присутствует в репозиториях большинства дистрибутивов Linux, однако вы можете скачать и установить бинарный файл при помощи следующей команды:
$ curl https://rclone.org/install.sh | sudo bash
Этот способ также подойдет для пользователей macOS и BSD.
Если вы используаете Windows или по какой-то иной причине вам не подходит эта инструкция, вы можете ознакомиться с инструкциями по установке с официального сайта.
Сначала запустите:
$ rclone config
Rclone выведет следующую информацию на экран:
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
. Rclone попросит ввести вас название вашего диска, здесь мы назовем его MIEM
.
name> MIEM
После этого Rclone выведет список всех поддерживаемых хранилищ. Нас интересует Google Drive, поэтому вводим drive
.
Storage> drive
После этого будет два поля, Id
и Secret
, которые нужно оставить пустыми.
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope>
Введите 1
, если вам нужен полный доступ к диску (чтение и запись). После этого два поля снова нужно оставить пустыми.
scope> 1
ID of the root folder - leave blank normally. Fill in to access "Computers" folders. (see docs).
root_folder_id>
Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login.
service_account_file>
Если вы настраиваете доступ к Google Drive на удаленной машине, где нет доступа к браузеру (к примеру, на веб-сервере), то выберете N
и Rclone даст вам ссылку, по которой нужно перейти и ввести логин и пароль от аккаунта Google Suite, а после скопировать код и вставить его в терминал с Rclone. В ином случае наберите Y
и тогда ссылка сразу же откроется в вашем браузере по умолчанию, где нужно лишь войти в профиль.
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> y
После аутентификации, если вы хотите сделать Google Drive общим, то Rclone предложит вам это сделать.
Configure this as a team drive?
y) Yes
n) No
y/n> n
Далее Rclone выведет информацию о вашем Google Drive для подтверждения. Если все в порядке, введите Y
.
[remote]
client_id =
client_secret =
scope = drive
root_folder_id =
service_account_file =
token = {"access_token":"XXX","token_type":"Bearer","refresh_token":"XXX","expiry":"2014-03-16T13:57:58.955387075Z"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Все! После этого вы можете сразу же пользоваться Rclone. Например, вы можете запросить список папок:
$ rclone lsd MIEM:
-1 2020-11-01 16:56:07 -1 .Trash-1000
-1 2020-03-20 14:35:58 -1 Classroom
-1 2021-01-09 10:08:52 -1 data
Или же скопировать что-то в папку (в данном случае папку data
):
$ rclone copy assignments.txt MIEM:data/
После этого файл должен оказатся в вашей папке.
Пользователям Windows также придется установить WinFsp. Подробнее читайте здесь.
Если вы не используете Rclone исключительно для автоматизации бекапов и хранения файлов, то вам будет не очень удобно постоянно вызывать Rclone для манипуляции с файлами. Поэтому стоит привязать ваш Google Drive к определенной папке. Например, создадим в домашней директории папку gdrive
и примонтируем к ней наше хранилище.
$ cd ~
$ mkdir gdrive/
$ rclone mount MIEM: gdrive/
После этого терминал заблокируется, а в папке gdrive окажутся все файлы с вашего облака. Вы можете пользоваться Google Drive в любом файловом менеджере, открыв эту папку. Чтобы размонтировать диск, нужно нажать комбинацию клавиш Ctrl + c.
Вы можете добавить в конец последней операции амперсанд (&), чтобы можно было продолжить пользоваться терминалом, однако с закрытием окна ваше хранилище автоматически размонтируется.
Данный шаг описан лишь для операционных систем на основе systemd.
rclonemount.service
, например:$ nano rclonemount.service
[Unit]
Description=Rclone Mount Service
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=USER
ExecStart=/usr/bin/rclone mount MIEM: /home/USER/gdrive --config /home/USER/.config/rclone/rclone.conf
ExecStop=/bin/fusermount -u /home/USER/gdrive
[Install]
WantedBy=default.target
Замените
USER
на имя вашего пользователя. Если вы хотите монтировать ваш Google Drive в другую папку, то измените все/home/USER/gdrive
на путь к вашей папке.
$ sudo mv rclonemount.service /etc/systemd/system/
$ sudo systemctl enable rclonemount.service
Created symlink /etc/systemd/system/default.target.wants/rclonemount.service → /etc/systemd/system/rclonemount.service.
$ sudo systemctl start rclonemount.service
Готово! Теперь ваш диск будет автоматически монтироваться при запуске системы.
Возможно, в вашей ОС есть какое-либо приложение или папка для скриптов автозапуска. Вы можете попробовать добавить туда следующий скрипт:
#! /bin/sh
if [ -d /home/USER/gdrive ]; then
rclone mount MIEM: /home/USER/gdrive
fi
Замените
USER
на имя вашего пользователя. Если вы хотите монтировать ваш Google Drive в другую папку, то измените все/home/USER/gdrive
.
Монтирование также будет производится при запуске системы, однако размонтирования при внезапном завершении работы компьютера может и не произойти. В таком случае, при каких-либо неполадках всегда можно размонтировать ваше хранилище вручную:
$ fusermount -u /home/USER/gdrive
страница перенесена из /test/gdrive
переименование