Не знаю, как это делают... Есть файлы на диске. Надо их "скачать из браузера". Ну, обычно мы делаем tar-архив, и его отдаем. Но это удвоение места на диске! А не делают этот tar "на лету", отдавая нужный кусочек, потом следующий... А?
> Не знаю, как это делают... Есть файлы на диске. Надо их "скачать
> из браузера". Ну, обычно мы делаем tar-архив, и его отдаем. Но
> это удвоение места на диске! А не делают этот tar "на
> лету", отдавая нужный кусочек, потом следующий... А?Что вам мешает написать на любом cgi скрипт который будет готовить временный тар для скачивания из тех файлов которые вам нужны?
>> Не знаю, как это делают... Есть файлы на диске. Надо их "скачать
>> из браузера". Ну, обычно мы делаем tar-архив, и его отдаем. Но
>> это удвоение места на диске! А не делают этот tar "на
>> лету", отдавая нужный кусочек, потом следующий... А?
> Что вам мешает написать на любом cgi скрипт который будет готовить временный
> тар для скачивания из тех файлов которые вам нужны?Так в этом и вопрос! Верно ли, что TAR(FILE1) + TAR(FILE2) == TAR({FILE1,FILE2}) ? (A+B - конкатенация.)
Есть большая дира, и пользователь должен иметь возможность качать ее тар с любого блока (байта). И если связь оборвется, на диске не должно оставаться данных (большого их куска), которые он не скачал.
>[оверквотинг удален]
>>> из браузера". Ну, обычно мы делаем tar-архив, и его отдаем. Но
>>> это удвоение места на диске! А не делают этот tar "на
>>> лету", отдавая нужный кусочек, потом следующий... А?
>> Что вам мешает написать на любом cgi скрипт который будет готовить временный
>> тар для скачивания из тех файлов которые вам нужны?
> Так в этом и вопрос! Верно ли, что TAR(FILE1) + TAR(FILE2) ==
> TAR({FILE1,FILE2}) ? (A+B - конкатенация.)
> Есть большая дира, и пользователь должен иметь возможность качать ее тар с
> любого блока (байта). И если связь оборвется, на диске не должно
> оставаться данных (большого их куска), которые он не скачал.Ну, вы можете формировать тар нужных каталогов на лету и отдавать его сразу пользователю без образования временных файлов. правда тогда докачки не будет.
Но вообще это плохая идея - в ответ на запрос пользователя нагружать систему созданием больших временных файлов. Плохо сказывается на производительности. Отдавать пользователю просто статический контент лежащий на диске - намного дешевле.
Это вполне реально сделать, можно даже докачку реализовать если знать размер всех файлов и их порядок в архиве. Поищите в инете описание формата tar-архивов, он очень простой.
> tar-архивов, он очень простой.И разнообразный! B) http://www.gnu.org/software/tar/manual/html_node/Formats.html
>> tar-архивов, он очень простой.
> И разнообразный! B) http://www.gnu.org/software/tar/manual/html_node/Formats.htmlДля данной задачи нужно реализовать только один из форматов, лишь бы скачавший смог его распаковать.
> Это вполне реально сделать, можно даже докачку реализовать если знать размер всех
> файлов и их порядок в архиве. Поищите в инете описание формата
> tar-архивов, он очень простой.Да, просто хотел услышать размышления вокруг моей идеи.
Tar делится на фиксированные блоки, в одном блоке не более одного файла. То есть, если фиксировать порядок файлов и их размер, то все тип-топ.
P.S. Только по формату не понял, где указывается ПУТЬ (не имя) файла и номер блока, номер относительного текущего пакуемого файла.