2.4 KiB
2.4 KiB
НИИКН: нарезка папки «Опыт» (Закупка Соловки) в тома ≤100 МБ
Дата: 2026-06-11 Задача: папку по шаре https://niikn.com/s/c3kwLWRa8dKX848 сжать в файлы до 100 МБ (лимит закупочной площадки).
Исходник
- Владелец:
maksimmaul@gmail.com, путьЗакупка Соловки/Опыт - 46 папок (1–46), 5287 файлов, 115 ГиБ — договоры, акты ГИКЭ, УПД (PDF/ZIP/SIG)
- Внутри есть одиночные PDF до 336 МБ → одиночными зипами не обойтись, только multi-volume
Решение
- Работа целиком на VM 108 (192.168.1.200, datadir
/mnt/ncdata), без перегона данных по сети - Бенчмарк: deflate -1 даёт всего 2.7% на PDF-сканах при 42 МБ/с → выбран store (-0), IO-bound
zip -rq -0 -s 95mна каждую папку: тома по 95 МиБ = 99 614 720 байт — меньше «100 МБ» и в MiB, и в десятичных МБ- Выход:
Закупка Соловки/Опыт-архивы-100мб/<N>/<N>.zip + <N>.z01…— по подпапке на объект - Регистрация:
occ files:scan --path=..., владелец 33:33 - Ссылка создана через OCS API c app-password бота Максимки (LXC 114,
/root/.clawdbot/nextcloud-creds.env)
Результат
- 1262 тома, 115 ГБ, 0 ошибок, ~29 минут; целостность проверена (склейка
zip -s 0+unzip -t) - Публичная ссылка: https://niikn.com/s/kqH46Jrjnb4ri3q (read-only)
- Диск VM 108: /mnt/ncdata 93% (302 ГБ свободно) — после загрузки на площадку папку-дубль можно удалить
Грабли/заметки
- Публичная шара c3kw… read-only (permissions 17) — заливать через неё нельзя, поэтому писали в datadir + scan
- Распаковка у получателя: положить все тома
<N>.z*+<N>.zipв одну папку, открыть<N>.zipчерез WinRAR/7-Zip - Скрипт и лог на VM 108:
/tmp/zip-opyt.sh,/tmp/zip-opyt.log
#niikn #nextcloud #закупки