Тип: Инфраструктура
Статус: Активный
Версия: 1.0
Дата создания: 2025-11-16
Универсальная инфраструктура для работы с Яндекс.Диском:
- Чтение файлов
- Запись файлов
- Синхронизация
- Бэкапы
Основа:
- Python 3.8+
- rclone (backend)
Зависимости:
- subprocess (для rclone)
- pathlib (для путей)
- json (для конфигурации)
- logging (для логирования)
projects/infra-yandex-disk/
├── claude.md # Этот файл
├── README.md # Документация для людей
├── solution/
│ ├── scripts/
│ │ ├── yd_read.py # CLI: чтение файлов
│ │ ├── yd_write.py # CLI: запись файлов
│ │ ├── yd_sync.py # CLI: синхронизация
│ │ └── yd_backup.py # CLI: бэкапы
│ ├── config/
│ │ └── rclone.conf.template # Шаблон конфигурации
│ └── lib/
│ └── ydisk_client.py # Библиотека-обёртка
├── management/
│ ├── SETUP.md # Инструкция по установке
│ └── OPERATIONS.md # Операционные процедуры
└── tests/
└── test_ydisk.py # Тесты
Класс-обёртка над rclone:
class YDiskClient:
def read_file(remote_path, local_path)
def write_file(local_path, remote_path)
def list_files(remote_path)
def delete_file(remote_path)
def sync(local_path, remote_path)
def get_info(remote_path)
yd_read.py:
- Скачивание файла с Яндекс.Диска
- Скачивание директории
- Вывод содержимого в stdout
yd_write.py:
- Загрузка файла на Яндекс.Диск
- Загрузка директории
- Создание директорий
yd_sync.py:
- Односторонняя синхронизация
- Двусторонняя синхронизация
- Выборочная синхронизация
yd_backup.py:
- Создание бэкапа проекта
- Восстановление из бэкапа
- Ротация бэкапов
Использование в других проектах:
from projects.infra_yandex_disk.solution.lib.ydisk_client import YDiskClient
client = YDiskClient(remote_name="ydisk")
client.write_file("local.txt", "remote/path/file.txt")
content = client.read_file("remote/path/file.txt")
Использование через CLI:
# Скачать файл
python projects/infra-yandex-disk/solution/scripts/yd_read.py \
--remote "ydisk:backup/file.txt" \
--local "/tmp/file.txt"
# Загрузить файл
python projects/infra-yandex-disk/solution/scripts/yd_write.py \
--local "/tmp/file.txt" \
--remote "ydisk:backup/file.txt"
# Синхронизация
python projects/infra-yandex-disk/solution/scripts/yd_sync.py \
--local "/opt/project" \
--remote "ydisk:backup/project"
rclone.conf location:
- Default: ~/.config/rclone/rclone.conf
- Custom: через переменную RCLONE_CONFIG
Remote name:
- Default: ydisk
- Настраивается при установке
Секреты:
- OAuth токен хранится в rclone.conf
- Не коммитится в git
- Права доступа: 600
Логирование:
- Не логировать токены
- Не логировать содержимое файлов
- Логировать только операции
Независимый проект:
- Не зависит от других проектов
- Может использоваться любым проектом
Используется в:
- pim-drupal (бэкапы медиа)
- pirotehnika-opencart (бэкапы изображений)
- marketplace-mvp (бэкапы данных)
Установка:
См. management/SETUP.md
Ежедневные операции:
См. management/OPERATIONS.md
Бэкапы:
- Автоматические: через cron
- Ручные: через CLI
1.0 (2025-11-16)
- Первая версия
- Базовый функционал чтения/записи
- CLI инструменты
- Интеграция через Python
v1.1:
- [ ] Поддержка прогресс-бара
- [ ] Параллельная загрузка
- [ ] Кэширование метаданных
v1.2:
- [ ] Web UI для управления
- [ ] API endpoint
- [ ] Webhooks для автоматизации
v2.0:
- [ ] Поддержка других облачных хранилищ
- [ ] Шифрование на стороне клиента
- [ ] Дедупликация файлов
Статус: Активная разработка
Ответственный: Claude AI
Последнее обновление: 2025-11-16