Начало работы

1. Установить rclone на Linux:

sudo -v ; curl https://rclone.org/install.sh | sudo bash

2. Создать профиль подключения к Object Storage.

Монтировать вручную

1. Смонтировать бакет

rclone mount s3-connect:<имя_бакета>  <директория> --vfs-cache-mode off --allow-non-empty --daemon

--vfs-cache-mode off

In this mode (the default) the cache will read directly from the remote and write directly to the remote without caching anything on disk.

This will mean some operations are not possible

- Files can't be opened for both read AND write
- Files opened for write can't be seeked
- Existing files opened for write must have O_TRUNC set
- Files open for read with O_TRUNC will be opened write only
- Files open for write only will behave as if O_TRUNC was supplied
- Open modes O_APPEND, O_TRUNC are ignored
- If an upload fails it can't be retried

--allow-non-empty

Allow mounting over a non-empty directory

--daemon

Run mount in background and exit parent process

2. Удалить маунт

fusermount -u <директория>

Автоматический запуск через демон

1. Создать демон

nano .config/systemd/user/rclone@.service
[Unit]
Description=rclone: Remote FUSE filesystem for cloud storage config %i
Documentation=man:rclone(1)
After=network-online.target
Wants=network-online.target
 
[Service]
Type=notify
PermissionsStartOnly=true
ExecStartPre=/usr/bin/mkdir -p /home/worker/media/%i
ExecStart= \
  /usr/bin/rclone mount s3-connect:<bucket>-%i /home/<user>/<ditecroty>/%i \
    --config=/home/<user>/.config/rclone/rclone.conf \
    --vfs-cache-mode writes \
    --vfs-cache-max-size 100M \
    --allow-other \
    --allow-root
ExecStop=/bin/fusermount -u /home/<user>/<ditecroty>/&i
 
[Install]
WantedBy=default.target
  • --allow-other

    Allow access to other users

  • --allow-root

    Allow access to root user Необходимо для обхода ошибки запуска Docker контейнера с монтированным бакетом в качестве volume.

  • %i

    Постфикс бакета и директории. Например, для бакета backend-dev == backend-%i. Позволяет создавать несколько запущенных демонов для разных бакетов и директорий. Можно использовать вместо имени бакета.

  • WantedBy=default.target

    Необходимо для запуска демона после перезагрузки ВМ.

Чтобы разрешить доступ к маунту всем пользователям, если активирован флаг --allow-other , раскомментировать опцию user_allow_other в

sudo nano /etc/fuse.conf

2. Перезагрузить демон

systemctl --user daemon-reload

3. Просмотр статуса демона

systemctl --user status rclone@dev

4. Запуск демона

systemctl --user enable --now rclone@dev
  • После @ указывается постфикс бакета.

Документация


📂 Yandex Cloud

Последнее изменение: 21.09.2024 20:08