Страница 1 из 1

Подмена архивов при запрете

Добавлено: Пт апр 04, 2008 7:17
Junior
Здравствуйте!

У меня такой вопрос: можно ли как-то "подсовывать" локальные архивы
при запрете пользователю на их получение из интернета, но так, чтобы
имя локального архива менялось на такое же, какое он скачивать
собирался?
Т.е. собрался, например, пользователь скачать http://megasite.ru/files/super_archiv.zip , а ему локальный архив с нашего
сервера подсовываем и переименовываем его таким же именем.
А на локальный сайт я хочу положить битые архивы, которые при получении
им не могут быть распакованы. Таким образом и трафик целый и нервы :)
Всегда можно объяснить, что проблема у провайдера, например, "часы пик"
на канале и т.д. Это, на мой взгляд, лучше подсовывания страницы
с уведомлением о запрете.
В идеале бы, конечно, на каждый тип файла такое сделать (zip, rar, 7z,
arj - один архив, который переименовывается в зависимости от указанных
раньше условий; exe, msi - другой локальный файл; iso, cue... и т.д.)
Вот такая идея.
Был бы очень благодарен за подсказку.

Добавлено: Пт апр 04, 2008 10:03
Slava
Да вроде пользователь и так ничего не должен заметить, если не используется что-то вроде 302: в урле перенаправления.

Ещё html'ки подмените все и будет полная экономия трафика :)

Добавлено: Пт апр 04, 2008 18:24
Junior
Нет, ну как же - конечно заметит :)
Если он качает архив super_archiv.zip, например, а локально ему
подложится local_archiv.zip, то как же он не заметит разницы в именах?? :)
Я хочу, чтобы имя отдаваемого ему файла менялось каждый раз, в зависимости от того, какое имя архива скачивается.
Что-то типа функции переименования локально-лежащего файла в название скачиваемого файла. Т.е. считать из скачиваемой ссылки название перед расширением zip (или rar, exe, msi, 7z, arj, tar, tar.gz, gz, iso, cue и т.д.) и отдать пользователю локальный файл (разных типов, которые лежат на сервере) переименовав его в это название.
Конечно в прокси-сервере настроить отдачу на небольшой скорости.
Возможно ли такое? Видимо это всё-таки на уровне редиректора проще решить.
Локальные битые архивы в идеале бы генерировать из всякого случайного мусора. И чтобы размер был приблизительно ожидаемым. :)

Добавлено: Пт апр 04, 2008 18:28
Slava
Junior писал(а): Если он качает архив super_archiv.zip, например, а локально ему
подложится local_archiv.zip, то как же он не заметит разницы в именах?? :)
Думаю да, проверьте.

Добавлено: Пт апр 04, 2008 18:30
Junior
Кхм... ну так я по этому поводу и обратился в форум, чтобы помогли реализовать это. Вопрос в том - как? :)

Добавлено: Пт апр 04, 2008 18:33
Slava
так же как в остальных серциях, правила, урл замены.

Добавлено: Пт апр 04, 2008 18:35
Junior
Всё, разобрался, прошу прощения за ложную тревогу, что-то переклинило :)
Остался вопрос с размером отдаваемого архива. Это реально решить?
Ведь при скачивании файла почти всегда получаем информацию
о размере этого файла. Было бы здорово, чтобы этот самый файл
генерировался автоматически из обычного набора символов,
или забивался нулями, а затем к нему "приделывалось" расширение
и он отдавался пользователю. Для большей достоверности :)
А то если запрошен архив в 1 мб, а ему отдано 10 мб - будет подозрительно,
ну и наоборот тоже :)

Добавлено: Пн апр 07, 2008 10:07
Slava
А вот с размером сложно, режик не получает данных, о размере файла.
Сделайте редирект на свой cgi и в нем определяйте размер архива(например запросом HEAD) и отдавайте соответствующий.