Неофициальный Python-CLI Mail.ru Облака клиент для майл ру, работающий через WebDAV
mailrucloud позволяет управлять файлами из терминала: загружать, скачивать, синхронизировать каталоги, получать информацию о файлах и многое другое. Проект вдохновлён gdrive и стремится предоставить такой же простой UX, но для Mail.ru Cloud.
- Возможности
- Установка
- Быстрый старт
- Список команд
- Примеры использования
- Синхронизация
- Roadmap
- Сборка из исходников
- Contributing
- Лицензия
- Авторизация с использованием паролей приложений Mail.ru (2FA friendly)
- Просмотр содержимого облака (
ls) - Загрузка и скачивание файлов (
upload,download) - Одно/двухсторонняя синхронизация каталогов (
sync push / pull / both) - Удаление, перемещение, переименование файлов / папок (
rm,mv) - Получение подробной информации о файле (
info) - Чистый вывод в CLI и дружелюбные emoji-индикаторы
- 100 % тестовое покрытие fast-unit сценариев, CI на GitHub Actions
Требования: Python ≥ 3.10
pip install --upgrade mailru-cloud-clipython -m pip install --upgrade \
-i https://test.pypi.org/simple \
--extra-index-url https://pypi.org/simple \
mailru-cloud-cli==1.3.2git clone https://github.com/mueqee/mailrucloud.git
cd mailrucloud
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python main.py --help# 1. Авторизация (email + пароль приложения Mail.ru)
mailrucloud login
# 2. Посмотреть содержимое корня
mailrucloud ls
# 3. Загрузить файл
mailrucloud upload ./photo.jpg /Photos/2024/
# 4. Скачать файл
mailrucloud download /Photos/2024/photo.jpg ./При первой авторизации токен сохраняется в ~/.mailru_token.json.
| Команда | Псевдоним | Описание |
|---|---|---|
login |
– | Войти в облако Mail.ru |
ls [REMOTE_DIR] |
– | Список файлов/папок (default /) |
upload <LOCAL_PATH> [--remote-path PATH] |
– | Загрузка файла |
download <REMOTE_PATH> [LOCAL_PATH] |
– | Скачивание файла |
sync [OPTIONS] <LOCAL_DIR> <REMOTE_DIR> |
– | Синхронизация каталогов |
rm <REMOTE_PATH> |
del |
Удаление файла/папки |
mv <SRC> <DST> |
– | Переименование/перемещение |
info <REMOTE_PATH> |
– | Подробная информация о файле |
Все команды поддерживают флаг --help для подробной справки.
# Рекурсивный вывод содержимого каталога
mailrucloud ls /Documents
# Односторонний бэкап (push)
mailrucloud sync ~/Projects /Backup --direction push
# Отобразить размер и дату изменения файла
mailrucloud info /Backup/report.pdf
# Удалить файл
mailrucloud rm /Backup/old.zipsync сопоставляет структуры директорий, копируя недостающие или изменённые файлы.
Удаление в режиме both пока не отражается (безопасный режим). Алгоритм основан на сравнении хэшей и временных меток.
# Двусторонняя синхронизация (значение по умолчанию)
mailrucloud sync ~/Notes /CloudNotes
# Только из облака → локально
mailrucloud sync ~/Notes /CloudNotes -d pull
# Только локально → облако
mailrucloud sync ~/Notes /CloudNotes --direction push- Публикация стабильной версии в основное PyPI ✅
- Поддержка удаления при двусторонней синхронизации
- Проверка целостности (md5) после загрузки/скачивания
- Параллельная (мультитред) загрузка/скачивание больших файлов
- Интерактивный TUI-режим (rich-console)
- Trusted Publishing для TestPyPI и PyPI (без API-токенов)
- Кроссплатформенная сборка и тестирование (Windows/macOS)
- Вывод прогресса операций через
rich.progress - Docker-образ
mailrucloudдля быстрого использования - Генератор автокомплита Bash/Zsh/Fish для CLI
- Поддержка шифрования токена учётных данных
Проект использует PEP 517 (setuptools). Локальная сборка:
python -m pip install --upgrade build
python -m buildИсходники пакуются в dist/.
Pull requests приветствуются! Перед отправкой:
- Создайте issue или обсудите идею в дискуссии.
- Убедитесь, что
pytest -vпроходит локально. - Соблюдайте Conventional Commits на русском.
- Запустите
flake8/mypyпри необходимости.
Пакет распространяется под лицензией MIT. Полный текст — в файле LICENSE.