База знаний · KB

☁️ Google Drive — синхрон проекта и эффективная работа

Как держать проект на Drive, как синхронить SSD ↔ Drive, как отдавать монтажёру и как делать это быстро и безопасно. Сквозные правила для любого YT-проекта.

🧭 Главное правило: у Drive ДВА разных назначения — Зеркало (полная двусторонняя копия проекта) и Handoff (односторонняя отдача монтажёру). Не путать. Реорг/переименование на Drive — server-side move, НЕ перезаливка. Удаление — в корзину, не насовсем.

1 Два режима — Mirror vs Handoff

Это РАЗНЫЕ задачи с разными целями, направлением и местом на Drive. Сначала пойми, что тебе нужно.

 🪞 Зеркало (Mirror)📤 Handoff монтажёру
Цельполная копия проекта = бэкап/работа с двух машинотдать материал монтажёру
Направлениедвустороннее (bisync, обе стороны равны)одностороннее (rclone copy)
Чтовесь проект (медиа включительно)что нужно монтажёру (медиа + артефакты)
Куда на Drivegdrive:YTAI_Mirror/<PROJECT> (личный)Shared Drive «Production Projects» → <PROJECT>
Кто запускаетmirror.py локально (скилл /sync)делегируется Winston

Имя папки проекта на Drive — стабильное (напр. {PROJECT}), НЕ менять при движении карточки/смене статуса (иначе рвутся ссылки).

2 Зеркало — двусторонний синхрон (skill /sync)

Полное двустороннее зеркало проекта SSD ↔ Google Drive через rclone bisync. Безопасно: конфликт сохраняет обе версии, массовые удаления и запуск без диска блокируются.

🚀 Первый раз — --init
Создаёт baseline, заливает весь проект (~сотни ГБ) на gdrive:YTAI_Mirror/<PROJECT>. Большой seed → ФОНОМ (nohup+caffeinate), это часы. Один раз на проект.
🔁 Дальше — --run
Быстрые дельты в обе стороны (сравнение по size+modtime). Правка на SSD → летит на Drive, и наоборот.
🛡 Safety-флаги
--check-access (sentinel RCLONE_TEST на обеих сторонах — не стартует без диска) · --max-delete 25 (абортит при удалении >25%) · --conflict-resolve none (обе версии сохраняются .conflict1/2).
⚠️ Конфликт
.conflict1=SSD, .conflict2=Drive. Ничего не потеряно. Решить какая победила → rename обратно. Не включать глобальный auto-newer (mtime на внешних дисках врёт).
🧊 Safety-аборт = СТОП
Почти всегда — диск не смонтирован / неверный путь. Проверить mount, НЕ форсить --force вслепую.

Реестр зеркал: mirror.py --list. Логи — в проекте 00_Setup/logs/, НИКОГДА в /tmp. Привилегированное (форс mass-delete, права на Shared Drive) → Winston.

3 Handoff монтажёру — односторонняя отдача

Залить новый материал/правки монтажёру в его папку на Shared Drive. Это rclone copy, делегируется Winston.

4 Реорг = server-side move, НЕ перезаливка ⭐

Самая частая потеря времени. Если контент УЖЕ на Drive, а локально его переименовали/перенесли — на Drive делай серверный move (мгновенно, без байтов), а не лей заново.

❌ Как НЕ надо
Переименовал папку локально → rclone copy залил её на Drive заново (десятки ГБ через интернет), а старая осталась дублем. Часы впустую + дубли.
✅ Как надо
rclone move gdrive:<old> gdrive:<new> — server-side в пределах одного аккаунта/Shared Drive. Мгновенно, 0 байт по сети. Контент тот же — менялись только пути.

Правило: реорг папок на Drive = серверный move старого → нового пути. Заливать заново только то, чего на Drive ещё нет (новые файлы). Удаление дублей — тоже move в Drive-корзину (§5), не purge.

5 Удаление = корзина (move в _TRASH, не purge)

Ничего не удаляем насовсем. Перекладываем в корзину + заметка «что/почему». Восстановить = перенести обратно.

💻 Локально (SSD)
Корзина канала /Volumes/<disk>/<CHANNEL>/_TRASH/<дата>/<PROJECT>/ + _NOTE.md. Хелпер: python3 ~/YTAI/scripts/999_extra/trash_move.py "<path>" --reason "...". На том же диске move мгновенный.
☁️ На Drive
rclone move <src> gdrive:<.../_TRASH/> (НЕ purge) + заметка. Делает Winston. Перед move — сверить, что файл есть в новой структуре (не унести единственную копию).

6 Скорость и эффективность

Почему бывает медленно и как ускорить.

🕳 VPN душит аплоад
Туннель (AmneziaWG, utun9, full) гонит весь Drive-трафик через себя → ~5 МиБ/с. Признак: медленно, но 403 в логе НЕТ. Фикс: rclone --bind 192.168.1.95 (трафик с en0 мимо туннеля, app-level) = 4× (5→22 МиБ/с). Уже вшито в mirror.py. Route-level split НЕ годится — Google = ротируемый пул IP.
🚦 QPM-троттлинг Google
Признак: 403 rateLimitExceeded, ETA скачет. Лечит --tpslimit 8 --transfers 2, multi-thread off. --size-only = дешёвый рестарт.
🔢 Сериализуй
Две заливки на ОДИН gdrive-аккаунт делят QPM → троттлят друг друга. Не гонять зеркало + handoff одновременно — по очереди.

7 После структурных изменений — relink в Premiere

Если переименовал/перенёс папки, в .prproj зашиты старые пути → монтажёр увидит Media Offline.

8 Шпаргалка команд

Зеркало (mirror.py)
M=~/YTAI/scripts/11_sync/1101_mirror/mirror.pyпуть к модулю
python3 $M --project <путь|CODE> --dry-runпревью (первый контакт)
python3 $M --project <путь> --initпервый baseline (ФОНОМ для большого медиа)
python3 $M --project CODE --runобычный двусторонний синхрон
python3 $M --list / --status / --checkреестр / конфликты / паритет
Drive (rclone, через Winston)
rclone move gdrive:<old> gdrive:<new>реорг server-side (0 байт)
rclone copy <src> <dst> --ignore-existingдокачать недостающее
--tpslimit 8 --transfers 2 --drive-acknowledge-abusegentle по квоте + большие mp4
rclone move <src> gdrive:<.../_TRASH/>удаление = в корзину (не purge)
rclone check --size-onlyverify паритета
--bind 192.168.1.95мимо VPN-туннеля = 4× быстрее (en0)

9 Грабли и чеклист

1
Зеркало или handoff? сначала определись — разные папки/направление
2
Реорг → server-side move не лить заново то, что уже на Drive
3
Удаление → корзина trash_move.py локально / rclone move в _TRASH на Drive
4
Один аплоад за раз не гонять зеркало + handoff параллельно (QPM)
5
Большое = фоном nohup + caffeinate, лог в 00_Setup/logs/
6
Медленно? проверь VPN (split-tunnel) и 403 в логе (tpslimit)
7
После move → relink в Premiere, иначе Media Offline
8
Инфра → Winston права Shared Drive, форс mass-delete, VPN/сеть
База знаний yt.rya.ae · инструменты: mirror.py (skill /sync), rclone bisync/move/copy, trash_move.py. · смежное: YT-загрузка → · Project Ops → · обновлено 2026-06-24.
скопировано ✓