Skip to main content

Неофициальный CLI-клиент для Mail.ru Cloud (WebDAV)

Project description

Mailru Cloud CLI

CI Publish PyPI License

Неофициальный Python-CLI Mail.ru Облака клиент для майл ру, работающий через WebDAV

mailrucloud позволяет управлять файлами из терминала: загружать, скачивать, синхронизировать каталоги, получать информацию о файлах и многое другое. Проект вдохновлён gdrive и стремится предоставить такой же простой UX, но для Mail.ru Cloud.


📑 Содержание

  1. Возможности
  2. Установка
  3. Быстрый старт
  4. Список команд
  5. Примеры использования
  6. Синхронизация
  7. Roadmap
  8. Сборка из исходников
  9. Contributing
  10. Лицензия

🚀 Возможности

  • Авторизация с использованием паролей приложений Mail.ru (2FA friendly)
  • Просмотр содержимого облака (ls)
  • Загрузка и скачивание файлов (upload, download)
  • Одно/двухсторонняя синхронизация каталогов (sync push / pull / both)
  • Удаление, перемещение, переименование файлов / папок (rm, mv)
  • Получение подробной информации о файле (info)
  • Чистый вывод в CLI и дружелюбные emoji-индикаторы
  • 100 % тестовое покрытие fast-unit сценариев, CI на GitHub Actions
  • Рекурсивная загрузка директорий с автоматическим созданием всех вложенных папок в облаке (sync push)

📦 Установка

Требования: Python ≥ 3.10

Вариант 1: PyPI (стабильная версия)

pip install mailru-cloud-cli

Если видите ошибку "externally-managed-environment", используйте виртуальное окружение:

python3 -m venv .venv
source .venv/bin/activate

Список команд

mailrucloud --help

Вариант 2: TestPyPI (текущие бета-релизы)

python -m pip install --upgrade \
  -i https://test.pypi.org/simple \
  --extra-index-url https://pypi.org/simple \
  mailru-cloud-cli==1.4.0

Вариант 3: Из исходников (рекомендуется для разработки)

git 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> Удаление файла/папки
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.zip

🔄 Синхронизация каталогов

sync сопоставляет структуры директорий, копируя недостающие или изменённые файлы. Удаление в режиме both пока не отражается (безопасный режим). Алгоритм основан на сравнении хэшей и временных меток.

# Двусторонняя синхронизация (значение по умолчанию)
mailrucloud sync ~/Notes /CloudNotes

# Только из облака → локально
mailrucloud sync ~/Notes /CloudNotes -d pull

# Только локально → облако
mailrucloud sync ~/Notes /CloudNotes --direction push

🛣 Roadmap

  • Публикация стабильной версии в основное PyPI
  • Рекурсивное создание директорий при загрузке (sync push)
  • Поддержка удаления при двусторонней синхронизации
  • Проверка целостности (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/.

🤝 Contributing

Pull requests приветствуются! Перед отправкой:

  1. Создайте issue или обсудите идею в дискуссии.
  2. Убедитесь, что pytest -v проходит локально.
  3. Соблюдайте Conventional Commits на русском.
  4. Запустите flake8 / mypy при необходимости.

📝 Лицензия

Пакет распространяется под лицензией MIT. Полный текст — в файле LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mailru_cloud_cli-1.4.1.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mailru_cloud_cli-1.4.1-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

Details for the file mailru_cloud_cli-1.4.1.tar.gz.

File metadata

  • Download URL: mailru_cloud_cli-1.4.1.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for mailru_cloud_cli-1.4.1.tar.gz
Algorithm Hash digest
SHA256 988617265669464795b90e4b45215a07ebb774d7a180a676f97a6f5968b4dc36
MD5 a891d154c20a4e45e38c2ff5717c69b6
BLAKE2b-256 8c525158e0c3d201bca8ab6cef98b47784716af9884df5f812a720e0f584f347

See more details on using hashes here.

File details

Details for the file mailru_cloud_cli-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for mailru_cloud_cli-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b9f285597a42a94b243ac1d0e1012ef55886261bc53ec16d5e26d9c6c953da8a
MD5 816bc5a4c0ca6afceff990767005ee6b
BLAKE2b-256 18dded959f04a300257a8064d7651cefaac4dbbed76d71bdb2956b73cfe552e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page