Возможно ли «потоковое» скачивание множества файлов с сайта?

Всем доброго дня.
Есть сайт, на нем довольно много фотографий (более 400Гб в среднем вес одной - 300Кб). Пользователь имеет возможность просматривать часть из них. Ему нужна возможность скачать выбранные фото на себе комп.
Конечно, старый добрый вариант, это формирование архива, но есть несколько проблем:
1. фоток может быть очень много - за 1 раз до 14Гб;
2. не все пользователи имеют возможность открывать архивы (ввиду политик безопасности);
3. нагрузка на сервер в момент формирования.

По этому и возник вопрос - возможно каким то образом инициировать скачивания массива фотографий, чтобы пользователь выбрал папку и далее с сервера пошла в нее заливка выбранных ранее фотографий?

Прошу ссылочки на литературу, подсказки или варианты альтернативного решения задачи.
Заранее спасибо!
  • Вопрос задан
  • 433 просмотра
Пригласить эксперта
Ответы на вопрос 3
@nirvimel
Можно использовать TAR в качестве архива. Это дает:
  1. Нулевую дополнительную нагрузку на сервер по причине отсутствия компрессии.
  2. Возможность программно писать такой "архив" на лету прямо в открытое tcp соединение (со вставкой HTTP-заголовков в начале).
  3. Возможно даже написать докачку архива после обрыва соединения через "206 Partial Content" и "Content-Range:", также на лету, мгновенно, без переборки архива от начала. Это нетривиальная задача, но вполне решаемая.
Ответ написан
@dmitryKovalskiy
программист средней руки
Как насчет создать торрент? Лично у меня есть "плохая" идея. По выбранному списку файлов формировать GET-запросы на каждое изображение отдельно. Из соображений безопасности - вас из браузера не пустят в файловую систему, а запросить скачивание могут и из закрытых систем. Так что все файлики полетят в какой-нибудь DownLoads. Всеже архив - самое адекватное решение. Можете покопать сокеты или SignalR. Возможно они умеют возвращать файло.
Ответ написан
Комментировать
@123459
если сайт с фото ваш - используйте webdav, затем подмонтируйте webdav как обычный сетевой том.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы