|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.04.2014, 00:02 | #1 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 22
|
Доступ к прямым ссылкам на облачное хранилище Mail.ru
Здраствуйте, товарищи. Не знаю, в том ли разделе создаю пост, но вроде как оно.
Есть давно разрабатываемая мной программа - MusicSort. В ней есть "облачный" клиент - проще говоря она имеет прямой доступ к некоей базе музыки и аудиокниг. Некоторые ссылки просто стыбрены на разных сайтах (в основном через flashvars='....), другие (большинство) розтыканы по разным облачным хранилищам (Dropbox, Cubby, Diskane, Cloud.Mail.ru). Так вот - недавно мейлру расщедрился и подарил 1 терабайт бесплатного места у себя на "облаке" - я очень обрадовался - это ж какую тучу музыки и книг можна загрузить! И все шло просто прекрасно. Прямые ссылки, никаких ограничений - супер! Но видать жаба их задавила, поэтому они недавно сделали "апгрейд", чтобы можно было скачивать файлы только с веб-страницы, через окно загрузки. У меня, естественно, тут же перестали работать все каталоги в программе - ведь вместо прямой ссылки выдавалось html окошко. Фишка была в том, что если раньше ссылка типа https://cloclo1.datacloudmail.ru/web...verinets/1.mp3 - открывалась сразу, то теперь вот этот префикс "clocloX" стал при каждом обращении генерироваться случайно. Пришлось быстро выпускать новую версию программа с патчем - просто был добавлен костыль - цикл где перебирались префиксы ("cloclo1,cloclo2,cloclo3...") и один из них непременно "попадал" в цель - файлы снова стали играть и скачиваться. Но вот сегодня вечером они подсунули очередную подлянку - перебор перестал работать. Скачать файл НАПРЯМУЮ можно ТОЛЬКО со страницы mail.ru. Вот - https://cloud.mail.ru/public/c120512...tie_Zverinets/ - можете сами посмотреть. Если нажать значок загрузки (стрелочка вниз) - все работает, т.е. выдается прямая ссылка, причем в том же виде, как и раньше, формат не поменялся. Но теперь сколько не прокручивай префиксы (от 1 до 28 - результат 0. Я думаю, возможно там задействованы куки, чтоли? Прошу совета у опытных программистов. Прога на Делфи написана, для доступа в сеть НЕ применяетсья Инди. Использован модуль WinInet, а для открытия аудиофайлов - BASS (он умеет сразу url открывать). Очень нужна помощь - я хоть и деньги никакие прогой не зарабатываю, но есть некоторое количество пользователей - не хочеться их подводить. ps. Ссылка на саму прогу http://soft.mail.ru/program/musicsort |
11.04.2014, 09:59 | #2 |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
ждите пока ни webDav реализуют
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
11.04.2014, 10:18 | #3 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 22
|
Это неплохая идея. Я хоть еще и с webDav не работал, но вроде Synapse его поддерживает, значит можно будет прикрутить к программе. Я так понимаю, что тогда и яндекс.диск и Google.drive можно будет использовать. НО! Я то могу ждать, а вот мои пользователи - нет. Там ведь уже на 16 гиг аудио загружено - и оно теперь все недоступно - это катастрофа. Вчера до 1 часа ночи вертел это мейлру - и так, и сяк - ни в какую. И куки вроде никакие не отсылаются - по крайней мере судя по инструменту "Network" из панели разработчика в Mozzila. Ничего понять не могу....
|
11.04.2014, 10:55 | #4 | |
Участник клуба
Регистрация: 23.04.2009
Сообщений: 1,058
|
Цитата:
Если вам человек помог, не стесняйтесь говорить спасибо (весы под аватаром)
|
|
11.04.2014, 16:07 | #5 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
Так посмотри у них в исходнике страницы, откуда ссылка берется, и делай так же.
|
11.04.2014, 19:38 | #6 | ||
Пользователь
Регистрация: 04.06.2009
Сообщений: 22
|
Цитата:
Вот фрагмент кода: Цитата:
В принципе, в том наверное и стоит вопрос - как же "нажать" её программно? Какой запрос отправить? Т.е. надо сделать так, чтобы сервер считал будто я не напрямую ссылку открываю, а именно с расшареной страницы. Мне бы хоть понять - как именно он это определяет? В теле запроса чтоли? По сниферу если смотреть - отправляется стандартный себе "GET адрес_файла". И все. Значится так. Выцепил я одну штуку - при переходе по прямой ссылке, сервер выдает ошибку 301 - moved permanently, т.е. URI файла перемещен навсегда. Что в принципе и соответсвует действительности - префиксы генерятся каждый раз новые. Но в теле ответа, есть строчка Location, где указывается новое местоположение файла - полный его адрес. Щас буду пробовать еще с этого боку... Может кто знает, как обрабатывать 301-ое сообщение в делфи - буду очень признателен за подсказку. Последний раз редактировалось Stilet; 14.04.2014 в 20:40. |
||
11.04.2014, 23:11 | #7 |
Форумчанин
Регистрация: 19.08.2011
Сообщений: 329
|
Редирект берете из заголовков и переходите по ним. Так и обрабатываете))
|
11.04.2014, 23:49 | #8 |
Участник клуба
Регистрация: 23.12.2010
Сообщений: 1,129
|
А реферрер в заголовках ты ставишь?
|
12.04.2014, 03:23 | #9 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 22
|
Уже да Собственно потому и удалось восстановить копирование. А заодно и выкинул "костыль" - он оказался больше не нужен. Теперь с каким префиксом не заходи - файл скачивается. Но проблема с воспроизведением осталась - библиотека BASS не имеет фукций для настройки заголовка. Т.е. поменять там можно только агента, а реферера и все остальное - нет. Я уже со всех сторон заходил - ну не знаю я что с ним делать! Остается один вариант - перехват пакетов и подмена заголовка на лету. Но и по этой теме ничерта нельзя откопать. Я и про реферера чисто методом тыка дошел. А тут... Я помню пару лет назад что-то писал на WinSocks для "ТанковОнлайн". Но уже ничего не помню. Может подскажите? Уже просто мозги пухнут от всей этой лабуды.... 2.30 ночи - а я еще ковыряюсь.
Доброй ночи. Итак, задача сузилась до создания прокси-сервера с возможностью подмены заголовков. В программу был добавлен поток в котором крутится TIDHttpProxyServer. Все работает - но вот основная задача - в пролете. Т.е. мейл.ру так и осталься недоступен по причине своей SSLнутости. К сожалению, прокси на Инди не умеет обрабатывать https запросы Был прикручен костыль в обработчик OnHTTPBeforeCommand - Код:
Знаю, что уже всем надоел, но уж очень нужна ваша помощь. Просто не знаю что еще придумать. Как заставить работать эту шнягу? Последний раз редактировалось Stilet; 14.04.2014 в 20:43. |
14.04.2014, 17:07 | #10 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 22
|
Я так понял, общатся придеться лишь с самим собой
В процессе познания работы инди-прокси, выяснилось, что вышеприведенный код, с принудительным включением SSL, нужен лишь когда серверу отсылаются команды "GET, POST", а команда "CONNECT", которая собственно и есть командой подключения к https хосту - обрабатывается TIndyHTTPProxyServer автоматически. Вернее, её и обрабатывать не надо - он её туннелирует напрямую. НО! Даже когда было все переделано, и SSL теперь включается только при GET-запросе - все равно нифига не работает. Даже google не грузится. Было также замечено, что после этого некоторые заголовки стали приходить в виде крякозябров. Может с кодировкой проблемы? Как её в Indy поменять? Или все же на сокет попробовать собрать эту байду? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
приложение, облачное хранилище | VsadniK36 | Фриланс | 0 | 17.09.2012 15:01 |
Простой загрузчик файлов по прямым ссылкам | burning1 | Помощь студентам | 9 | 03.09.2012 23:10 |