Яндекс ограничивает скорость к Я.Диску (1 мбит/с) на платном тарифе

После оплаты годового тарифа узнал, что скорость доступа к их сервису по api ограничена 1 мбит/с. То есть файл, размером в 28 мб, загружается на Яндекс Диск за 215 секунд, а 1гб за 2 часа 16 минут. Заранее об этом Яндекс предпочёл не сообщать.

Яндекс ограничивает скорость к Я.Диску (1 мбит/с) на платном тарифе
3030

А можно как то распознать как сервер отличает официальный клиент от официального. Чтоб прикинуться официальным клиентом.

Ответить

На самом деле покопав глубже, я всё понял. Проблема не в том как он отличает, а в том как работает клиент. В общем суть, яндекс апи, это "Extended WebDAV". И "расширенный" тут ключевое слово. Если у разработчика альтернативного клиента руки не оттуда, или ему лень разбираться в "Extended WebDAV", то да, резаться будет всё. Короче, как работает нормальный клиент, это может быть и альтернативный в том числе:
1) бьёт большой файл на сегменты (виртуально)
2) вычисляет от каждого сегмента его hash
3) делает запрос на апи яндекса, подсовывая список hash этих сегментов
4) получает ответ от яндекса, каких сегменты у него уже есть, а каких нет
5) грузит только те сегменты файла которых у YD нету (по их id полученные от яндекса в п.4).
——
Если не выполнять эти условия, скорость будет резаться.

Как работает "недо-клиенты", в том числе тот "curl" пример из первого поста:
1) пытается пропихнуть весь файл целиком без сегментирования и вычисления хэшей.
2) яндекс видит отсутствие хэшей и что ему пытаются пропихнуть огромный файл целиком, как итог яндекс такие клиенты режет.

И это вполне ОПРАВДАНО!

Поясню почему:
Представьте, у вас есть большой файл, скажем 20gb, который вы загрузили на диск. Вы изменили в нём пару байт (а может и просто дату создания файла) ваш клиент видит что файл изменился и шлёт весь файл на диск. Скорость вашего канала 200 мегабит. И таких как вы ещё 1000 человек по все РФ, которые поставили себе эти "недо-клиенты". Что случится с каналом связи яндекс цода? Ляжет он. Потому что 200 гигабит канал нужен будет, нет таких каналов. До кучи, вы все, все 1000 человек, загрузите на YD 20 TB данных, ПРИ ТОМ что у файлов изменилось пару байт из 20TB (со всех в сумме), или вовсе могла просто дата поменяться.

Короче, для себя лично я решил проблему просто и быстро, я создал для своего NAS docker образ с yandex disk официальным клиентом. И смонтировал в него нужный мне каталог.
Далее я создал ещё один docker образ, которому отключил сеть и дал лоступ к корневой системе в NAS, напихал всяких кронов, которые архивируют нужные мне папки и сервисы со всего NAS в тот каталог который доступен первому докер образу с яндексом. Итог, файлы выгружаются на яндекс диск на скорости 20 мегабайт в секунду (200 мегабит), это предел моего интернет канала.

Ответить