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

📦 Установка

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

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

pip install --upgrade mailru-cloud-cli

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

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

Из исходников

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> 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.zip

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

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

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

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

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

🛣 Roadmap

  • Публикация стабильной версии в основное PyPI ✅
  • Поддержка удаления при двусторонней синхронизации
  • Проверка целостности (md5) после загрузки/скачивания
  • Мультитред-загрузка больших файлов
  • Интерактивный TUI-режим (rich-console)

🛠 Сборка из исходников

Проект использует 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.3.2.tar.gz (13.9 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.3.2-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mailru_cloud_cli-1.3.2.tar.gz
Algorithm Hash digest
SHA256 2dd4fa0525bce494620b9056a3ef6b009672eec349dce44261c6713208d55271
MD5 181ad76dd4b70522d3cbdd5dfef7766c
BLAKE2b-256 a80443c88597e09b4c866bdb8e171addc9d34785ad50cc9df6d57b9134b7d807

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mailru_cloud_cli-1.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a4dbc34111c23795dcbf0dc6d0905a4d904df6e25c1b7b0f3b092251cc6cf8c5
MD5 ae5d4bf2cdbc07935ff92c9146b8bbe2
BLAKE2b-256 4c049603bcd1dff72a5edbdaa856fb69b412183c54615ca90807b7945d9fb55f

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