Files
knowledge-base/decisions/2026-06-11-niikn-opyt-arhiv-100mb.md

37 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# НИИКН: нарезка папки «Опыт» (Закупка Соловки) в тома ≤100 МБ
**Дата:** 2026-06-11
**Задача:** папку по шаре https://niikn.com/s/c3kwLWRa8dKX848 сжать в файлы до 100 МБ (лимит закупочной площадки).
## Исходник
- Владелец: `maksimmaul@gmail.com`, путь `Закупка Соловки/Опыт`
- 46 папок (146), 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`)
## Результат (v2 после жалобы «zip не открывается»)
Первая версия (46 multi-volume архивов по папкам) не открывалась у людей двойным кликом —
Проводник/маковский Архиватор не умеют split-zip. Перепаковано скриптом `/tmp/repack.py`:
- файлы ≤94 МБ → **независимые обычные zip ≤95 МБ** (`N-partNNN.zip`, bin-packing в порядке обхода)
- файлы 9499 МБ → одиночный zip (`N-файл-….zip`)
- 278 файлов >99 МБ (docx/pdf-сканы до 700 МБ!) → тома `-s 95m` только на сам файл (`N-ТОМА-….zip+.z01…`)
- Итого 1728 файлов, 115 ГБ; покрытие сверено: 4986+23+278 = 5287 файлов источника
- `ПРОЧТИ-МЕНЯ.txt` с инструкцией лежит в корне шары
- **Публичная ссылка: https://niikn.com/s/kqH46Jrjnb4ri3q** (read-only); скачивание part-zip проверено end-to-end
- Диск VM 108: /mnt/ncdata 93% — после загрузки на площадку папку-дубль можно удалить
## Грабли/заметки
- Публичная шара c3kw… read-only (permissions 17) — заливать через неё нельзя, поэтому писали в datadir + scan
- **Split-zip (.z01) не открывает ни Проводник, ни Archive Utility** — только WinRAR/7-Zip и только при всех томах рядом; для людей по умолчанию делать независимые zip, тома — лишь где файл сам больше лимита
- zip rc=16 «cannot update a split archive» = коллизия имени архива: в 14/Акты ГИКЭ два разных файла с одинаковым именем «1.31. Акт ГИКЭ…» (в подпапках 1.31 и 1.16, версии отличаются на 9.7 КБ) — второй набор назван «дубль из 1.16», Максиму стоит разобраться, какая версия верная
- Скрипты и логи на VM 108: `/tmp/zip-opyt.sh|.log` (v1), `/tmp/repack.py`, `/tmp/repack.log` (v2)
#niikn #nextcloud #закупки