Всем спасибо, уже нашла, что искала
github.com/gtsystem/python-remotezip
Python
Можно ли прочитать содержимое zip архива с сайта (по сети) не загружая его целиком?
Теоретически да.
На практике слишком заморочено.
Некоторые веб серверы могут отдавать часть файла при специально сформированном запросе. ZIP файл состоит из секций. Тебе понадобятся секция со словарем и последняя секция. Распаковав последнюю секцию словарем ты получишь содержание архива.
На практике слишком заморочено.
Некоторые веб серверы могут отдавать часть файла при специально сформированном запросе. ZIP файл состоит из секций. Тебе понадобятся секция со словарем и последняя секция. Распаковав последнюю секцию словарем ты получишь содержание архива.
Нельзя
В принципе да, но не всё содержимое, ессно. Список файлов (без папок) например. Я такое делаю коммандерным просмотрщиком и глазами (просто расширения там не zip).
Что за ересь... Для просмотра файл в любом случае загружается. В вариантах: Загрузка для сохранения, загрузка для просмотра во временный файл, загрузка "кусками" как потоковое видео. но загрузка по любас будет.
Под содержанием вы понимаете список файлов и каталогов внутри архива с датами размерами, правильно? Если кратко, это сложно, но возможно, и то далеко не всегда.
Для формата ZIP структура каталога располагается в конце файла и начинается с специального "магического числа". Перед ним есть фрагменты с описаниями файлов и самими сжатыми данными.
То есть сетевой протокол получения файла должен позволять получить кусочек хвоста файла, а потом придётся декодировать эту "папку" и докачивать дополнительные фрагменты из разных частей ZIP файла, чтобы получить данные о каждом содержащемся файле. Для протокола HTTP, например, это возможно только если сервер поддерживает так называемые range requests, а через FTP такого сделать нельзя.
Для формата ZIP структура каталога располагается в конце файла и начинается с специального "магического числа". Перед ним есть фрагменты с описаниями файлов и самими сжатыми данными.
То есть сетевой протокол получения файла должен позволять получить кусочек хвоста файла, а потом придётся декодировать эту "папку" и докачивать дополнительные фрагменты из разных частей ZIP файла, чтобы получить данные о каждом содержащемся файле. Для протокола HTTP, например, это возможно только если сервер поддерживает так называемые range requests, а через FTP такого сделать нельзя.
Егор Белогубов
можно же ведь наугад узнать размер фала целиком, и взять у него 10 процентов с конца?
Егор Белогубов
или 500кб
Скорее всего нет.
Читая что-то вы хотите это увидеть у себя и так или иначе это что-то передаете по сети т. е. загружаете. Таким образом общий ответ нет
Однако не стоит забывать что любой архиватор при простом открытии и/или перемещении по архиву читает его не целиком а лишь его структуру (заголовок, то как расположены файлы в архиве) этот же принцип и у файловой ситсемы (любой) иначе доступ к вашим терабайтам инфы осуществлялся бы ОЧЕНЬ долго. Архив это та же файловая система внутри файла (своего рода виртуальный диск) но с оговорками и в зависимости от типа/метода архивирования (zip это лишь контейнер/красивая обертка).
Исходя из этого возможна не полная загрузка архива, но тогда повышается нагрузка на сервер ведь ОН должен будет открывать и читать структуру архива.
Если хотите это реализовывать - вам придется либо тесно знакомится со сторонними библиотеками архиваторов либо самому писать подобный код и курить спецификации форматов архивирования
Однако не стоит забывать что любой архиватор при простом открытии и/или перемещении по архиву читает его не целиком а лишь его структуру (заголовок, то как расположены файлы в архиве) этот же принцип и у файловой ситсемы (любой) иначе доступ к вашим терабайтам инфы осуществлялся бы ОЧЕНЬ долго. Архив это та же файловая система внутри файла (своего рода виртуальный диск) но с оговорками и в зависимости от типа/метода архивирования (zip это лишь контейнер/красивая обертка).
Исходя из этого возможна не полная загрузка архива, но тогда повышается нагрузка на сервер ведь ОН должен будет открывать и читать структуру архива.
Если хотите это реализовывать - вам придется либо тесно знакомится со сторонними библиотеками архиваторов либо самому писать подобный код и курить спецификации форматов архивирования
Егор Белогубов
cмотри дополенние к вопросу
формат zip давно известен, индексы файлов внутри архива хранятся в самом конце zip файла,
нужно, всего лишь запросить сервер с http заголовком Range, не помню как там правильно....
github.com/gtsystem/python-remotezip
формат zip давно известен, индексы файлов внутри архива хранятся в самом конце zip файла,
нужно, всего лишь запросить сервер с http заголовком Range, не помню как там правильно....
github.com/gtsystem/python-remotezip
Похожие вопросы
- Шаблон/скрипт или заказать сайт под ключ?
- Вопрос на тему нейронных сетей
- Вопрос по нейронные сетям
- Нейронные сети. Как загрузить анализируемое видео/изображение во входной вектор.
- Возможно ли backend разработчику создать сайт
- Подскажите хостинг для первого сайта на Python+Django+SQLite3
- Как и где изучать программирование? Какие курсы посоветуете, какие сайты? Пора уже войти в эту тему.
- Ошибка "405 Not Allowed" при попытке авторизоваться на сайте через скрипт на Python
- Подскажите, сайте где можно попрактиковаться на питоне и на с++.
- Реально ли за 4 месяца выучить нейронные сети?
формат zip давно известен, индексы файлов внутри архива хранятся в самом конце zip файла,
нужно, всего лишь запросить сервер с http заголовком Range, не помню как там правильно....