Вопрос Можно ли прочитать содержимое zip архива с сайта (по сети) не загружая его целиком?

Регистрация
25 Май 2013
Сообщения
73
Репутация
0
Спасибо
0
Монет
0
Всем спасибо, уже нашла, что искала
github.com/gtsystem/python-remotezip
 
Под содержанием вы понимаете список файлов и каталогов внутри архива с датами размерами, правильно? Если кратко, это сложно, но возможно, и то далеко не всегда. Для формата ZIP структура каталога располагается в конце файла и начинается с специального "магического числа". Перед ним есть фрагменты с описаниями файлов и самими сжатыми данными. То есть сетевой протокол получения файла должен позволять получить кусочек хвоста файла, а потом придётся декодировать эту "папку" и докачивать дополнительные фрагменты из разных частей ZIP файла, чтобы получить данные о каждом содержащемся файле. Для протокола HTTP, например, это возможно только если сервер поддерживает так называемые range requests, а через FTP такого сделать нельзя.
 
Теоретически да. На практике слишком заморочено. Некоторые веб серверы могут отдавать часть файла при специально сформированном запросе. ZIP файл состоит из секций. Тебе понадобятся секция со словарем и последняя секция. Распаковав последнюю секцию словарем ты получишь содержание архива.
 
Что за ересь... Для просмотра файл в любом случае загружается. В вариантах: Загрузка для сохранения, загрузка для просмотра во временный файл, загрузка "кусками" как потоковое видео. но загрузка по любас будет.
 
В принципе да, но не всё содержимое, ессно. Список файлов (без папок) например. Я такое делаю коммандерным просмотрщиком и глазами (просто расширения там не zip).
 
Читая что-то вы хотите это увидеть у себя и так или иначе это что-то передаете по сети т. е. загружаете. Таким образом общий ответ нет Однако не стоит забывать что любой архиватор при простом открытии и/или перемещении по архиву читает его не целиком а лишь его структуру (заголовок, то как расположены файлы в архиве) этот же принцип и у файловой ситсемы (любой) иначе доступ к вашим терабайтам инфы осуществлялся бы ОЧЕНЬ долго. Архив это та же файловая система внутри файла (своего рода виртуальный диск) но с оговорками и в зависимости от типа/метода архивирования (zip это лишь контейнер/красивая обертка). Исходя из этого возможна не полная загрузка архива, но тогда повышается нагрузка на сервер ведь ОН должен будет открывать и читать структуру архива. Если хотите это реализовывать - вам придется либо тесно знакомится со сторонними библиотеками архиваторов либо самому писать подобный код и курить спецификации форматов архивирования
 
Назад
Сверху