4. Архивы

Архивы позволяют забрать папку или весь раздел одним файлом и вернуть их обратно вместе с вложенными папками. Это есть только в древовидных разделах.

 

Скачать архивом

Меню раздела с действиями над архивом

Скачать раздел архивом в корне и Скачать архивом внутри папки. Архив собирается на сервере, поэтому большая папка отдаётся не мгновенно: приложение сообщает, что архив готовится, и отдаёт файл браузеру, когда он собран.

Имя архива складывается из имени раздела и пути папки: cacerts.zip для раздела, files-certificates.zip для папки внутри него, siteshare-public.zip для части составного раздела.

Папку или весь раздел можно забрать целиком, пока файлов в них меньше 10 000 и объём меньше 2 000 000 000 байт — это около 1,9 ГБ. Объём приложение узнаёт заранее и скажет сразу, если забирать нечем: ждать сборки и получать отказ не придётся. Слишком большую папку забирают частями — по вложенным папкам.

В пустой папке архивировать нечего, и об этом будет сказано.

Залить архивом

Залить архивом… в том же меню. Структура сохраняется: запись sub/отчёт.pdf ляжет в подкаталог sub, а не рядом.

Архив идёт через ту же очередь, что обычные файлы, но одной строкой: он принимается или отвергается целиком, а что именно в нём было, видно по содержимому папки после распаковки.

Пределов три, и о каждом приложение говорит словами:

  • сам файл архива — меньше 2 000 000 000 байт: ровно столько и больше за один запрос не принимается. Об этом приложение скажет ещё до отправки, а если откажет сервер — назовёт тот предел, который применил он;

  • в распакованном виде — до 2 000 000 000 байт, и это главное число: по размеру архива его не угадать. Текст сжимается в разы, двоичные данные почти не сжимаются, так что архив в 300 МБ может развернуться и в гигабайт, и в двадцать мегабайт. Распакованный объём виден серверу по оглавлению архива — до того, как что-то будет записано на диск;

  • отдельный файл внутри архива — до 536 870 912 байт (512 МБ). Это общий предел платформы на один файл; у раздела может быть свой, и тогда обычная загрузка ограничена им.

Предел упаковки и предел распакованного объёма совпадают намеренно: папка, которую удалось скачать архивом, всегда заливается обратно.

Когда архив будет отвергнут

Архив

Половина архива не распаковывается никогда: если что-то не так, отвергается весь архив. Причины:

  • файл не является архивом;

  • сам файл архива — 2 000 000 000 байт или больше;

  • в распакованном виде архив больше 2 000 000 000 байт;

  • внутри есть файл больше 536 870 912 байт;

  • внутри есть путь, выходящий за пределы архива (.., абсолютный путь, ссылка наружу);

  • внутри есть имя, недопустимое по правилу суффиксов (раздел «Файлы») — например отчёт!metadata.

Приложение называет причину само, а для записи, из-за которой архив не принят, показывает её имя: исправлять нужно именно её.

Обратный ход

Архив, скачанный из приложения, заливается обратно и воспроизводит ту же структуру. Это удобный способ перенести содержимое папки между доменами или серверами: скачали в одном, залили в другом.


◀ 3. Папки

5. Пути к файлам в сценариях ▶