|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
02.01.2019, 10:57 | #1 |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
проверка на существование файла на сервере и доступ к нему
Здравствуйте.
Нужно программно скачать из интернета несколько файлов. Но не просто скачать, а при скачивании выполнить с ними определенные действия. Насколько мне известно, готовых программ для выполнения таких действий не существует. Действия очень простые, но весьма хитрые. Чтобы ни у кого не возникали вопросы "почему?" и "зачем?", сразу опишу всё подробно: Есть сайт. На этом сайте хранятся видео-файлы, которые так просто скачать нельзя. Однако, с помощью некоторых программ можно получить прямые ссылки на эти файлы. А так же можно увидеть, что каждый видео-файл хранится на тамошнем сервере разбитым на несколько маленьких файлов длительностью примерно по 10 секунд. Сами ссылки выглядят примерно вот так: Код:
Выходит, что всё элементарно. Пишем программу, которая скачивает все файлы от 0 до N и объединяет их в один большой файл. На основе примеров из интернета, набросал свой быдлокод: Код:
Однако, не всё так просто. При попытке скачать некоторые файлы (любым менеджером закачки), сервер выдаёт ошибку HTTP error 403 Forbidden. Например, пытаюсь скачать файл https://server/video/id/40.ts и получаю ошибку HTTP error 403 Forbidden. Но если при возникновении этой ошибки добавлять к имени файла "-muted", то есть ссылка будет выглядеть так: https://server/video/id/40-muted.ts. Тогда файл скачивается нормально, без ошибки 403. Итак, собственно сам вопрос: как проверить, есть ли доступ к файлу по ссылке (и существует ли он вообще) и скачать другой файл вместо него если доступ к первому ограничен? |
21.01.2019, 10:08 | #2 |
Форумчанин
Регистрация: 16.12.2009
Сообщений: 902
|
Я думаю что такое можно реализовать с помощью WinInit, он сам определяет нужные ссылки, да и проверку в нем можно сделать на нужный файл, для теста вот здесь есть тестовая программка с исходником http://www.programmersforum.ru/showp...9&postcount=17
Последний раз редактировалось Aliens_wolfs; 21.01.2019 в 10:10. |
21.01.2019, 10:57 | #3 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Что-то это очень смахивает на HLS. Если так, то может не стоит так извращаться, а использовать другой подход.
|
22.01.2019, 03:21 | #4 |
Форумчанин
Регистрация: 07.11.2011
Сообщений: 164
|
В общем виде решение проблемы может выглядеть так:
Код:
|
03.02.2019, 10:42 | #5 | ||
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Цитата:
Цитата:
Там ясно сказано, что если, например, к файлу 150.ts нет доступа, то заменить его на 150-muted.ts. Какая из вышеперечисленных программ так умеет? |
||
03.02.2019, 12:00 | #6 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,760
|
Цитата:
Любая, какая заявляет о поддержке соответствующего стандрта. Т.к. клиенту отсылается "плейлист" и ему не надо проверяет есть ли файл, придумывать какой вместо этого запрашивать толи 150-muted, толи 150-ррр, толи 150-ццц... |
|
03.02.2019, 12:56 | #7 | |
Форумчанин
Регистрация: 13.02.2012
Сообщений: 867
|
Цитата:
В плейлисте написано 150.ts, но этот файл не доступен. Вместо него доступен файл 150-muted.ts. Как, не проверяя доступ, узнать какой файл нужно качать? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка существование файла на ftp | Wh1teP | Общие вопросы Delphi | 5 | 22.04.2013 14:48 |
проверка на существование файла | god5 | Общие вопросы Delphi | 4 | 02.03.2013 16:31 |
Проверка на существование файла на удалённом http сервере | NewBoy | Общие вопросы C/C++ | 0 | 03.08.2012 10:21 |
Проверить существование файла на сервере | Wicort | JavaScript, Ajax | 8 | 04.05.2012 23:16 |
Проверка существование Email адреса на сервере | Бутаков_Сергей | Работа с сетью в Delphi | 7 | 29.12.2010 01:55 |