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

Яндекс.Диск - Инфраструктурный проект

Универсальная библиотека и CLI-инструменты для работы с Яндекс.Диском через rclone.

Быстрый старт

Установка

# 1. Установить rclone (если не установлен)
curl https://rclone.org/install.sh | sudo bash

# 2. Настроить Яндекс.Диск
rclone config
# Выбрать: n (new remote)
# Name: ydisk
# Storage: yandex
# Следовать инструкциям для OAuth авторизации

# 3. Проверить соединение
rclone lsd ydisk:

Использование через Python

from projects.infra_yandex_disk.solution.lib.ydisk_client import YDiskClient

# Создать клиент
client = YDiskClient(remote_name="ydisk")

# Загрузить файл
client.write_file("/local/path/file.txt", "remote/folder/file.txt")

# Скачать файл
client.read_file("remote/folder/file.txt", "/local/path/file.txt")

# Список файлов
files = client.list_files("remote/folder")

# Синхронизация
client.sync("/local/folder", "backup/folder")

Использование через CLI

# Скачать файл
python solution/scripts/yd_read.py \
  --remote "ydisk:backup/data.db" \
  --local "/tmp/data.db"

# Загрузить файл
python solution/scripts/yd_write.py \
  --local "/tmp/data.db" \
  --remote "ydisk:backup/data.db"

# Синхронизация директории
python solution/scripts/yd_sync.py \
  --local "/opt/myproject" \
  --remote "ydisk:backups/myproject"

# Создать бэкап
python solution/scripts/yd_backup.py \
  --source "/opt/myproject" \
  --destination "ydisk:backups/myproject" \
  --name "myproject-$(date +%Y%m%d)"

Возможности

Документация

Примеры использования

Бэкап базы данных

#!/bin/bash
# Ежедневный бэкап БД на Яндекс.Диск

DATE=$(date +%Y%m%d)
DB_FILE="/tmp/backup-${DATE}.db"

# Создать дамп
sqlite3 /opt/myproject/data.db ".backup ${DB_FILE}"

# Загрузить на Яндекс.Диск
python solution/scripts/yd_write.py \
  --local "${DB_FILE}" \
  --remote "ydisk:backups/myproject/db-${DATE}.db"

# Удалить локальную копию
rm "${DB_FILE}"

Синхронизация медиафайлов

# Синхронизация изображений из Drupal на Яндекс.Диск
python solution/scripts/yd_sync.py \
  --local "/var/www/drupal/sites/default/files" \
  --remote "ydisk:backups/drupal-media" \
  --exclude "*.tmp" \
  --exclude "css/*" \
  --exclude "js/*"

Требования

Лицензия

Внутренний проект для инфраструктуры.

Автор

Claude AI Infrastructure Team


Последнее обновление: 2025-11-16