infra/@yandex-disk.storage/claude.md

ЯНДЕКС.ДИСК - ИНФРАСТРУКТУРНЫЙ ПРОЕКТ

Тип: Инфраструктура
Статус: Активный
Версия: 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             # Тесты

КОМПОНЕНТЫ

1. YDiskClient (lib/ydisk_client.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)

2. CLI Scripts (scripts/)

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


ROADMAP

v1.1:
- [ ] Поддержка прогресс-бара
- [ ] Параллельная загрузка
- [ ] Кэширование метаданных

v1.2:
- [ ] Web UI для управления
- [ ] API endpoint
- [ ] Webhooks для автоматизации

v2.0:
- [ ] Поддержка других облачных хранилищ
- [ ] Шифрование на стороне клиента
- [ ] Дедупликация файлов


Статус: Активная разработка
Ответственный: Claude AI
Последнее обновление: 2025-11-16