CLI & FUSE filesystem that mounts OnlySQ Cloud as a local directory on Linux
This project has been archived.
The maintainers of this project have marked this project as archived. No new releases are expected.
Project description
OnlySQ Cloud Drive (Linux)
OnlySQ Drive - это неофициальное Linux-приложение и CLI-инструмент, который монтирует OnlySQ Cloud как каталог в файловой системе через FUSE.
Windows-версия: onlysq-drive
После настройки у пользователя появляется полноценный каталог рядом с остальными дисками, с которым можно работать как с обычным:
- загружать файлы в облако через файловый менеджер или терминал,
- скачивать и открывать файлы,
- удалять их,
- копировать публичную ссылку через контекстное меню,
- автоматически поднимать монтирование после входа через systemd.
Особенности
-
Каталог рядом с остальными дисками OnlySQ Cloud монтируется в
/run/media/$USER/OnlySQCloudи отображается в боковой панели файлового менеджера. -
Поддержка всех основных файловых менеджеров Dolphin (KDE), Nautilus (GNOME), Thunar (XFCE), Nemo (Cinnamon), Caja (MATE).
-
Простая установка через pip Проект ставится как обычный Python-пакет и управляется CLI-командой
onlysq-drive. -
Автозапуск при входе После настройки каталог поднимается автоматически через systemd user service.
-
Контекстное меню "Copy public link" Можно быстро копировать публичную ссылку на файл прямо из файлового менеджера.
-
Локальный индекс и кэш Приложение хранит индекс файлов и кэш на ПК, чтобы быстрее показывать содержимое и восстанавливать его после перезапуска системы.
-
SQLite внутри Для метаданных используется локальная база, без необходимости поднимать отдельный сервер или БД.
-
CLI-управление Всё настраивается и обслуживается понятными командами:
setup,doctor,stats,mount,configи т.д.
Как это работает
OnlySQ Drive создаёт пользовательскую файловую систему через FUSE3 и монтирует её как каталог.
Когда ты создаёшь или копируешь файл в этот каталог, приложение:
- сохраняет файл во временный локальный кэш,
- загружает его в OnlySQ Cloud,
- сохраняет метаданные в локальный индекс,
- делает файл доступным для дальнейшего открытия, скачивания и удаления.
Важно
Сейчас API OnlySQ Cloud предоставляет базовые операции загрузки, скачивания и удаления файла. Из-за этого клиент хранит локальный индекс файлов у пользователя. Это значит:
- на этом же ПК после перезагрузки всё сохраняется,
- но на другом ПК дерево файлов автоматически не восстановится без переноса локального индекса.
Стек
- Python 3.10+
- FUSE3 (libfuse3)
- pyfuse3 + trio
- SQLite
- requests
- systemd (user service)
- KDE / GTK shell integration
Установка
Требования
- Linux (с поддержкой FUSE3)
- Python 3.10+
- Системные пакеты:
fuse3(илиlibfuse3-dev),pkg-config
Из PyPI
pip install onlysq-drive-linux
Из исходников
pip install .
Быстрый старт
Установка зависимостей + пакета + настройка
Arch Linux / CachyOS / Manjaro
sudo pacman -S --noconfirm python python-pip fuse3 pkgconf \
&& pip install onlysq-drive-linux \
&& onlysq-drive setup --label "OnlySQ Cloud"
Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y python3 python3-pip libfuse3-dev fuse3 pkg-config \
&& pip install onlysq-drive-linux \
&& onlysq-drive setup --label "OnlySQ Cloud"
Fedora
sudo dnf install -y python3 python3-pip fuse3-devel fuse3 pkgconf-pkg-config \
&& pip install onlysq-drive-linux \
&& onlysq-drive setup --label "OnlySQ Cloud"
После этого:
- появляется каталог рядом с остальными дисками,
- диск отображается в боковой панели файлового менеджера,
- ставится автозапуск через systemd,
- добавляется контекстное меню "Copy public link",
- после следующего входа каталог поднимается автоматически.
Проверка
onlysq-drive doctor
onlysq-drive stats
Использование
Смонтировать вручную
onlysq-drive mount
Эта команда полезна для ручного теста. Для постоянной работы лучше использовать
setupилиinstall-autostart.
Проверить состояние
onlysq-drive doctor
Посмотреть статистику
onlysq-drive stats
Посмотреть содержимое виртуальной папки
onlysq-drive ls
onlysq-drive ls /folder
Информация о файле
onlysq-drive info /example.txt
Скопировать публичную ссылку
onlysq-drive copy-link /example.txt
Скачать файл
onlysq-drive pull /example.txt ~/Downloads/example.txt
Удалить файл
onlysq-drive rm /example.txt
Все команды CLI
Инициализация и настройка
onlysq-drive init
Создаёт:
- конфиг,
- SQLite-индекс,
- директорию кэша.
Пример:
onlysq-drive init --label "OnlySQ Cloud"
onlysq-drive setup
Полная первичная настройка:
init- создание точки монтирования
- установка контекстного меню
- добавление в боковую панель файлового менеджера
- установка автозапуска через systemd
Пример:
onlysq-drive setup --label "OnlySQ Cloud"
Диагностика и обслуживание
onlysq-drive doctor
Показывает:
- версию Python,
- платформу,
- путь к конфигу,
- точку монтирования,
- доступность pyfuse3 и fusermount3.
onlysq-drive stats
Показывает:
- количество файлов,
- количество папок,
- общий размер,
- состояние индекса.
Работа с виртуальным каталогом
onlysq-drive mount
Монтирует каталог вручную.
onlysq-drive ls [path]
Показывает содержимое папки.
onlysq-drive info <path>
Показывает информацию по файлу или папке.
onlysq-drive pull <virtual_path> <local_path>
Скачивает файл из облака/кэша.
onlysq-drive rm <path>
Удаляет файл или пустую папку.
onlysq-drive copy-link <path>
Копирует публичную ссылку файла в буфер обмена.
Конфиг
onlysq-drive config show
Показывает текущий конфиг.
onlysq-drive config set <key> <value>
Меняет поле в конфиге.
Примеры:
onlysq-drive config show
onlysq-drive config set mountpoint /run/media/$USER/OnlySQCloud
onlysq-drive config set volume_label "OnlySQ Cloud"
Интеграция с системой
onlysq-drive install-context-menu
Добавляет пункт в контекстное меню файлового менеджера:
- OnlySQ: Copy public link
Поддержка: Dolphin, Nautilus, Nemo, Caja.
onlysq-drive uninstall-context-menu
Удаляет этот пункт.
onlysq-drive install-autostart
Создаёт systemd user service для автоматического монтирования при входе.
onlysq-drive uninstall-autostart
Удаляет systemd user service.
Полное удаление локальных данных
onlysq-drive purge --yes
Удаляет:
- конфиг,
- SQLite-индекс,
- кэш,
- systemd service,
- записи в боковой панели файлового менеджера.
Пример:
onlysq-drive purge --yes
Автозапуск после перезагрузки
Если выполнен:
onlysq-drive install-autostart
или
onlysq-drive setup ...
то после входа пользователя каталог будет монтироваться автоматически.
Управление:
# Статус
systemctl --user status onlysq-drive
# Остановить
systemctl --user stop onlysq-drive
# Запустить
systemctl --user start onlysq-drive
# Логи
journalctl --user -u onlysq-drive -f
Где хранятся данные
Конфиг
~/.config/onlysq-drive/config.json
Индекс
~/.local/share/onlysq-drive/index.sqlite3
Кэш
~/.cache/onlysq-drive/files/
Логи автозапуска
~/.local/share/onlysq-drive/logs/autostart.log
Структура проекта
onlysq-drive/
├─ pyproject.toml
├─ README.md
└─ src/
└─ onlysq_drive/
├─ __init__.py
├─ cli.py # CLI entry point
├─ launcher.py # Autostart launcher
├─ mount.py # FUSE mounting via pyfuse3
├─ fs_ops.py # FUSE filesystem operations
├─ cloud_client.py # HTTP client for OnlySQ Cloud API
├─ index_db.py # SQLite file index
├─ config.py # JSON config dataclass
├─ autostart.py # systemd user service management
├─ shell_integration.py # Context menu (Dolphin/Nautilus/Nemo/Caja)
├─ sidebar.py # Sidebar bookmarks (GTK bookmarks)
├─ drive_icon.py # No-op on Linux
├─ clipboard.py # xclip/xsel/wl-copy clipboard
├─ paths.py # XDG path helpers
└─ vpaths.py # Virtual path normalization
Ограничения
- Это неофициальный клиент OnlySQ Cloud.
- Проект зависит от FUSE3 (libfuse3).
- Восстановление дерева файлов основано на локальном индексе.
- Если удалить локальный индекс, на другом ПК структура не восстановится.
Удаление
Удалить автозапуск и интеграции
onlysq-drive uninstall-autostart
onlysq-drive uninstall-context-menu
Удалить локальные данные
onlysq-drive purge --yes
Удалить пакет
pip uninstall onlysq-drive-linux
Лицензия
Проект распространяется под лицензией MIT.
Disclaimer
Это неофициальное приложение. Все права на бренд, API и платформу принадлежат OnlySQ.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onlysq_drive_linux-1.0.0.tar.gz.
File metadata
- Download URL: onlysq_drive_linux-1.0.0.tar.gz
- Upload date:
- Size: 30.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2337d2fece1bd1e0507e5f5231120b9415d6040c226a2bb4f3cd6a4bb6d18576
|
|
| MD5 |
fa0c3a69c634700907db67b1499fe99d
|
|
| BLAKE2b-256 |
6a50f9747a4493e5483a811c3f20d19822743229585f0d7c607f98b18882ef50
|
File details
Details for the file onlysq_drive_linux-1.0.0-py3-none-any.whl.
File metadata
- Download URL: onlysq_drive_linux-1.0.0-py3-none-any.whl
- Upload date:
- Size: 30.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0948617f300c1f032a5a2a7ffbfc74abe6a53e2e7861a4d8f55d099e6ccf7074
|
|
| MD5 |
5afa84a6fb7282bc0cd61a7b531c20cc
|
|
| BLAKE2b-256 |
1c11d5d8ef5c703eacf81c00d1252e77114fd4b6e20ddcbfafcddfb2cb9c85c2
|