Как загрузить файл на файлообменник и получить ссылку

Как сделать из Яндекс.Диск’а безлимитную систему хранения файлов

Эта статья является заключительной в серии моих постов про Яндекс.Диск и загрузку файлов: обход каптчи, даунлоад части файла с RANGE запросом из удаленного источника и автоматический аплоад на Яндекс.Диск. Все эти посты объединяет одно желание, разобраться, как именно работает система защиты Яндекс.Диск’а и какие у нее недостатки. Я ни в коем случае не хочу сказать, что в Яндексе работают непрофессионалы, наоборот, изучая код, я пришел к обратному выводу. Единственная цель этой статьи, на примере Яндекс.Диск’a показать, как можно из бесплатного файлового хостинга сделать бесплатное хранилище под Ваш проект, просто идея. Ну и конечно, дать некоторую пищу для размышления разработчикам подобных сервисов.

Итак, представляю вашему вниманию пример использования файлового хостинга Яндекс.Диск несовсем по назначению.

Загрузка файла самая простая часть в этой системе, вы можете прочитать, как это делается в моем предыдущем посте. Далее Яндекс.Диск выдает ссылку и вступает в действие следующая часть, обход каптчи.

Когда каптча успешно пройдена, система выдает вам временную ссылку, вида 18.dl19sd-narod.yandex.ru/disk/число/временный_хеш/имя_файла эта ссылка действительна только до той поры, пока вы не скачаете файл полностью или не пройдет по крайней мере 24 часа. Яндекс.Диск определяет это простейшим образом, HTTP Status Code 200. Как только сервер отдал Вам такой ответ, он больше ничего вам по этой ссылке не даст. Также существует ограничение на количество сгенерированных ссылок без каптчи, по последним данным за последние 5 минут, что не дает скачать много файлов за один раз. Кажется все логично? Как можно обойти такой «тупой каунтер», который просто считает сколько выдал ссылок, 1-2-3-4-5 и КАПТЧА. Да? Но в этом и проблема, именно тут и закладывается основа обхода этой системы. Нам ведь не надо хранить 5и гигабайтные файлы? Нам ведь нужно хранить наши файлики 5,10, 100 мегабайт? И что нам этот каунтер, когда есть архив? Под архивом, в данном конкретном случае, я подразумеваю простую склейку файлов.

Вы подготавливаете ваши файлы в 5и гигабайтные архивы, и используя скрипт даунлоада файлов по частям получаете к ним доступ. Даже если у вас 1 большой файл, достаточно просто добавить к нему 1 байт и все сработает. Так как ссылка действительна около суток, то за это время вы можете неограниченно выкачивать ваши файлы обратно. Яндекс.Диск будет думать, что вы просто качаете файл по частям, выдавая HTTP Status Code 206 и ссылка будет валидна даже после того, как вы скачаете файл! Именно по этой причине лимита 10 запросов без каптчи с Яндекс.Бар’ом за 5 минут (знатоки поправят, сколько точно) более чем достаточно. И не потому, что разработчик ошибся, а потому, что разработчик думал, что каптча защищает файл, а реально получается, что каптча защищает несколько файлов в одном файле.

Самое странное, что блокировка соединений происходит в пределах ссылки, а не в пределах IP адреса, т.е. Вы можете сгенерировать пару десятков ссылок и перегенерировать их по мере их выключения (примерно каждые 24 часа в настоящий момент) и качать с одного IP один и тот же файл в несколько потоков (по крайней мере у меня получилось). Так у вас всегда будет достаточное количество потоков для загрузки файлов. Периодически вам придется скачать файл полностью, чтобы не продлевать его жизнь в ручном режиме.

На самом деле, даже если Яндекс выключит возможность загрузки файлов без каптчи, проблему это не решит, так как ввести каптчу надо всего лишь раз в сутки (например, включить каптчу яндекс.диска в регистрацию на вашем проекте), чтобы качать из архива сколько душе угодно. Если же ввести ограничение на размер загруженного файла по ссылке, можно напороться на проблемы с некоторыми менеджерами загрузок, которые, в случае ошибок, могут часть файла перегрузить заново, особенно если размер файла большой, а канал не очень хороший.

Как все это можно использовать? Ну например, вы создаете очередную файловую помойку аля rapidshare.com или фотохостинг, но не хотите упираться в ограничения Яндекс.Фотки, какая основная проблема всех таких проектов? Правильно, где хранить файлы дешево. В случае с Яндекс.Диск вы можете просто купить шаред/VPS хостинг в Москве и рублей за 300 получить доступ к безлимитному 100 мегабит каналу до Яндекса. Т.е. при минимальном вложении вы получите файловую помойку неограниченной вместимости. Если немного потрудится, то реально сделать грамотный проект, с кешированием данных на шаред хостингах и с постоянным хранением на Яндекс.Диске.

Конечно, для крупных проектов, такие вещи не делаются, но думаю, что на начальных этапах развития вашего стартапа, на первый план выходит стоимость обслуживания серверов и систем хранения данных и в этом случае вы можете воспользоваться этой идеей.

P.S. Эта статья является результатом моего исследования и ни в коем случае не призывает использовать информацию в корыстных целях. Моя цель, помочь разработчикам улучшить безопасность веб приложений, заставить из подумать о том, что их приложение может использоваться не только так, как они это задумали изначально, а вот, например, таким «хитрым» способом. Именно поэтому никакого исходного кода законченной системы я приводить не буду.

P.P.S. По результатам коментариев в моем предыдущем посте, оказалось, что Яндекс относится лояльно к этой проблеме. Ну чтож, думаю, мы скоро это поймем, если скрипты, представленные в моих статьях продолжат свою работу 🙂

P.P.P.S. Настоящей статьей заканчивается эта серия, а также мой отпуск и мне пора опять выходить на работу, так что скорых новых постов ждать не следует. Надеюсь, вам понравились мои статьи.

Загрузка файлов на Google Диск

1. Авторизуйтесь или создайте аккаунт на Google Диск.
2. В левом верхнем углу нажмите Создать.
3. В выпадающем списке выберите пункт Загрузить файлы:

4. Выберите файлы на компьютере и дождитесь окончания загрузки.
5. Теперь можно получить ссылку на загруженный файл. Кликните по нужному файлу правой кнопкой мыши и выберите пункт Открыть доступ:

6. Вы можете дать доступ конкретному человеку. Для этого в поле Добавьте пользователей или группы введите email нужных людей. А также вы можете дать доступ к файлу всем. Для этого нажмите Разрешить доступ всем, у кого есть ссылка:

7. Затем установите права на редактирование. Если пользователю нужно только посмотреть и скачать файл, достаточно указать уровень «Читатель». Нажмите Копировать ссылку и Готово:

Готово, теперь сохранённую ссылку вы можете отправить пользователю.

Как Загрузить файл на чужой Яндекс диск?

  1. Выберите файл или папку, которой вы хотите поделиться.
  2. Нажмите кнопку Поделиться на верхней панели или в контекстном меню.


Как загружать свои файлы в папку Яндекс.Диска

Процедура будет отличаться для Windows и мобильной платформы.

Программа ЯндексДиск

В Windows это делается весьма просто:

Загрузка- файлов

  • открываем облачное хранилище, кликнув по пиктограмме программы, в трее или на рабочем столе;
  • жмём кнопку «Загрузить», предварительно выбрав папку, куда нужно переместить данные;
  • запускаем Проводник и выбираем папки или файлы, которые хотим выгрузить в облако;
  • спустя несколько минут (в зависимости от объёма выгружаемых данных) операция завершится, и в правой панели программы появятся загруженные файлы, зелёные галочки справа от названия файлов будут указывать, что загруженные данные синхронизированы.

Существует и второй способ загрузить папку на Яндекс.Диск, не требующий запуска клиентской программы. В самом проводнике после инсталляции программы появится папка с облачным диском, нужно просто скопировать в неё нужные данные. При включённой синхронизации файлы будут автоматически переданы в облако.

Рассмотрим теперь, как загрузить музыку и другие данные в облако через Android-устройство:

  • в Диспетчере файлов или приложении, выполняющем го функции, выбираем файлы для загрузки в облако и жмём стандартную иконку «Поделиться» в виде горизонтальной галочки с точками;
  • появится перечень адресатов, кликаем по иконке Яндекс.Диска;
  • выбираем папку, куда мы хотим загрузить данные, жмём «Загрузить».

С помощью веб-версии iCloud

Заходим на сайт iCloud.com, авторизуемся и отправляемся в раздел «Фото». После этого нужно нажать на «Выбрать все». Жмем на кнопку с тремя точками, затем — «Загрузить». Фотографии будут упакованы в архив, который сохранится на диск вашего устройства.

Если у вас ПК, перед сохранением медиаконтента нужно скачать версию приложения iCloud для Windows. Авторизуемся под своим логином и паролем, затем переходим в настройки и открываем раздел «Фото». Затем ставим галочку напротив пункта «Фото iCloud». Ждем окончания процесса загрузки.

Как увеличить объём Диска?

После того, как мы сумели скачать программу Яндекс.Диск и синхронизировать её (т.е. просто установили), то прибавилось 3 Гб . А после загрузки 2-х файлов с помощью приложения — ещё 2 Гб . Итого теперь 8/10 Гб .

Осталось Рассказать другу — и получить ещё 2 Гб:

Рассказать другу про Яндекс.Диск

Рассказать другу про всё это

Достаточно ввести один Email в поле «Кому» и сразу после отправки прибавится ещё 2 Гб:

Яндекс.Диск - на полную мощность!

Посмотрите хорошее видео с Youtube по теме:

В общем, сервис Яндекс.Диск действительно очень наглядный и удобный. Пожалуй, пока это лучший облачный сервис для хранения данных, которым я когда-либо пользовался.

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector