Андрей Смирнов
Время чтения: ~11 мин.
Просмотров: 0

Папка загрузки Яндекс диск. Решаем проблемы

21 Окт 2019г

С начала октября 2019 года, у множества наших пользователей появилась проблема в загрузке файлов на Яндекс.Диск. Это было выражено медленной загрузкой файлов или вообще обрывом передачи на сервер больших файлов. При проверке мы получили подтверждение что эта проблема коснулась и другого ПО использующее REST API или WebDav для доступа к Яндекс.Диск. В это же время официальный клиент Яндекс.Диск для десктопа и Web-клиент продолжили работать шустро и стабильно.

Как только мы получили подтверждение что проблема точно не в Effector Saver мы обратились в службу поддержки Яндекс.Диска и оперативно получили предварительное объяснение ситуации.

Если тезисно, то позиция техподдержки компании Яндекс оказалась следующая:

  • Effector Saver используется для передачи больших объемов данных.
  • Effector Saver фактически предлагает использовать Диск в качестве инфраструктурного компонента для решения коммерческих задач.
  • Яндекс.Диск — это персональный сервис, который не рассчитан на такое применение.
  • Яндекс рекомендует использовать для хранения резервных копий другой облачный сервис Яндекс.Облако.

Из этой позиции нам стало ясно что скорость выгрузки была ограничена специально с целью стимулировать переход пользователей (и разработчиков) на новый сервис компании — Яндекс.Облако.

Если быть точным, то имеется ввиду один из коммерческих сервисов Яндекс.Облако — универсальное масштабируемое решение для хранения данных Yandex Object Storage. С расценками на сервис можно ознакомиться здесь. API сервиса Yandex Object Storage совместим с Amazon S3 API. К нашему сожалению, на текущий момент Effector Saver не поддерживает этот протокол, но в ближайших релизах мы обязательно это исправим.

А пока мы в поиске решения нормализации работы с Яндекс.Диск очень рекомендуем подключить для ваших резервных копий альтернативные облака:

Чтобы узнать о выходе новой версии Effector Saver обязательно подпишитесь на наши новости .

Комментарии запрещены.—>

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

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

img_5bcb82e2a69d4.png

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

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

img_5bcb82f37d1fc.png

В верхнем левом углу видим синюю кнопку с надписью «Загрузить». Жмем ее, откроется папка проводника вашего компьютера, откуда выбираем файл. После его выбора вы увидите следующее окно, в котором проходит загрузка файла.

img_5bcb8305370b5.png

Когда файл будет загружен, окно его загрузки подсветится желтым. Рядом вы увидите две строчки. В одной будет прописан адрес для ссылки на файл, а во второй надпись «загрузить в соцсети».

img_5bcb8314863b9.png

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

img_5bcb832576b37.png

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

img_5bcb8334d7dc4.png

В результате у вас появиться подсвеченная синим сама ссылка, которую вы можете или скопировать и разместить, где вам надо, или же переслать. А можно напрямую воспользоваться одним из предложенных ниже вариантов размещения в соцсети.

img_5bcb8348008da.png

Это можно сделать как с файлом, так и с папкой. И еще один вариант. В браузере обычно показывается иконка диска, если только вы ее включили на панели.

img_5bcb83a3f1946.png

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

img_5bcb83a3f1946.png

Здесь нам надо выбрать «Поделиться». Нажав на нее мы тут же увидим надпись «Ссылка скопирована в буфер обмена» и саму ссылку. Все, теперь скопированную ссылку можно вставлять куда угодно.

img_5bcb840845fb9.png

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

Активируется  эта настройка сразу при установке приложения. Одновременно с этим, если вы откроете настройки программы, то во вкладке «Автозагрузка», увидите установленную галочку.

img_5bcb841b608c5.png

Если вам автозагрузка не нужна, то достаточно снять эту галочку в программе, или же отключить на смартфоне эту функцию в «Настройках».

Загружая какие-либо файлы на диск, иногда возникает необходимость отменить загрузку. Или вы по ошибке выбрали файл, или же просто передумали. Когда вы нажали в браузере на странице кнопку «Загрузить» и началась загрузка, прервать ее можно нажав на «Отменить загрузки».

img_5bcb842dc12bf.png

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

Увеличить скорость загрузки можно только изменением интернет-тарифа, увеличив, тем самым его общую скорость. Можно в момент загрузки отключить от интернета все другие устройства. Выше уже упоминалась настройка синхронизации отдельных файлов и папок (актуально для старых версий приложения).

Если же говорить об удобстве и быстроте загрузки файлов, то лучше всего, особенно объемные более 2 гб, загружать непосредственно через программу. Для чего открываем наше приложение, где выбираем папку для загрузки, потом выбираем папку на своем компе откуда будет загружаться файл, и просто перетаскиваем его. Он тут же отобразится на яндекс-диске.

img_5bcb843f8af4c.png

Ошибка загрузки файлов на яндекс-диск достаточно распространена, причины ее разные начиная от проблем с оборудованием и, заканчивая проблемами с интернет.

Если файл не может загрузиться на диск из-за недостаточности места, то необходимо удалить ненужные файлы. Причем удалить не только с дискового пространства, но и почистить корзину. Поскольку сначала  файлы не удаляются сами по себе – они перемещаются в корзину.

Может быть и такая причина, что файл используется другой программой. На диск вроде бы и загрузил, но показывает с ошибкой. Проверьте еще раз доступность файла, не занят ли он и загрузите снова.

Ну и проверить разные способы копирования. Через браузер может быть лимитирован по объему загрузки. На Яндексе рекомендуют большие объемом файлы загружать через программу¸ а не через браузер. Это так сказать проблемы возникающие на стороне пользователя.

img_5bcb845485587.png

А самая распространенная и частая причина ошибок загрузки файла в последнее время — это частые обновления приложения от разработчиков. Несколько раз я решал эту проблему удаляя существующую обновленную версию программы. И ставил предыдущую на которой все работало. Делается это через «Панель управления» —  «Программы и компоненты»- «Удаление программы.»

img_5bcb846562936.png

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

С каждой новой версией настройки программы упрощаются. В последних  та же синхронизация уже настраивается на экране для каждой папки отдельно, а не через меню «настройки». Несложно. А напоследок небольшой видеоурок по загрузке файлов на яндекс-диск:

На сегодня все, до новых встреч!

Мы уже рассказывали о том, как был сделан выбор в пользу протокола WebDAV, а также о проблемах, возникающих на серверной стороне, и их решении. Сегодня — о том, как устроен загрузчик файлов на сервис, и о чём нужно не забывать, когда пишешь его для сервисов масштаба Яндекс.Диска.accb77c24640dcbd929276fa25f2c4c7.png Для начала рассмотрим архитектуру сервиса в целом. В основе сервиса лежит mpfs – Магическая проксирующая файловая система. Это бэкэнд, который содержит в себе всю бизнес-логику по работе с файлами, папками, каталогами: все операции по копированию или созданию новых файлов идут через эту систему. Эта же система отвечает и за хранение метаданных. Синхронизация с клиентами происходит по протоколу WebDAV. На его основе мы создали клиенты под Windows, OS X и мобильные платформы. Но при необходимости с помощью WebDAV можно настроить синхронизацию с любым приложением, поддерживающим данный протокол.bb45fb847100bdff1e1e33b3cf7678db.png Через веб-интерфейс пользователям доступны те же функции, что и через клиенты: загрузка, скачивание и просмотр файлов. Кроме того, через наш внутренний API производится взаимодействие с другими сервисами Яндекса. На данный момент это Народ, Почта, Музыка и Браузер. Например, через мобильный клиент Яндекс.Музыки можно получить доступ к загруженным в Диск аудиофайлам.

Меч-кладенец

Но вернемся к нашей основной теме – загрузчику. У нас он проходит под кодовым названием «Кладун». Мы долго не могли подобрать подходящего русскоязычного аналога для пары uploader-downloader, но в итоге остановились на сочетании Кладун-Заберун. f6ba03599d04fffe40a35e2c97029902.png Нетрудно догадаться, что основной задачей Кладуна является загрузка и размещение файлов с метаданными в хранилища. Начинается все с того, что пользователь через клиент или веб-интерфейс добавляет в папку на Диске файл. На сервер посылается запрос, который передается в mpfs. Файловая система возвращает назад ссылку на конкретную машину из кластера загрузчиков, после чего на нее заливается файл. В итоге он попадает в хранилище, далее статус загрузки передается в mpfs, и она сохраняет все метаданные. На каждой машине-загрузчике хранится своя локальная очередь. Это позволяет повысить надежность процесса загрузки. При отключении одного из дата-центров или какаой-нибудь машины в кластере, на всех остальных машинах файлы продолжат заливаться. А на выключавшихся машинах процесс заливки продолжится сразу после их перезапуска. Помимо наиболее очевидной своей функции – забрать файл у пользователя и положить его в хранилище – загрузчик умеет также переносить файлы между сервисами Яндекса.

Стадии задач

Каждая задача, выполняемая загрузчиком делится на несколько стадий. Первым делом после получения файла от пользователя или сервиса производится подсчет контрольных сумм. В дальнейшем они будут использоваться при синхронизации файла для отслеживания изменений. Так как наш Кладун поддерживает загрузку изменений патчами, каждый файл разбивается на несколько блоков, для каждого из которых генерируется отдельная контрольная сумма. Если файл после заливки был слегка отредактирован, то при синхронизации перезалит он будет не целиком: заново будут загружены только те блоки, в которых произошли изменения и контрольные суммы перестали совпадать. Нечто подобное используется в системах управления версиями. Использование хэш-сумм также позволяет избежать повторной загрузки уже залитых другими пользователями файлов. К примеру, если вы хотите залить на Диск какой-либо популярный видеоролик или установочный файл, а в хранилище Диска уже есть файл с идентичной контрольной суммой, использоваться будет он. Таким образом, даже очень крупные файлы могут быть помещены в хранилище буквально за пару секунд. Это выгодно обеим сторонам: пользователь получает очень быструю загрузку, а мы экономим ресурсы. Всего повторяющиеся файлы составляют около 12 процентов от всех заливаемых. После заливки файла на машину загрузчика и подсчета хэш-суммы необходимо переместить файл в хранилище и отправить статус загрузки в mpfs. С этого момента файлы становятся доступны пользователю: они отображаются в веб-интерфейсе и могут синхронизироваться при помощи клиентов. Но на этом работа загрузчика не заканчивается, наступает черед двух стадий пост-обработки: создание превью и проверка на вирусы. Каждая стадия проходит через определенный набор состояний. Изначально все они находятся в исходном состоянии (initial). Некоторым стадиям на выполнение требуется совсем немного времени, они практически сразу переходят в статус успешно завершенных (success). Но на пути к успеху могут случаться сбои. Они бывают двух видов: временные и окончательные. Например, когда при передаче данных в mpfs случается сбой сети или перестает отвечать один из дата-центров, стадия переходит в состояние временного сбоя (temp fail) и через какое-то время запрос повторяется. Если через определенное количество повторений успешно завершить стадию так и не удается, она переходит в состояние окончательного сбоя (fail). e0e30ca2472a3341c752bcfea381a9ee.png В случае сбоя на стадии, которая никак не связана с сетью и выполняется локально, она сразу переходит в статус fail, так как повторный ее запуск, скорее всего, никаких результатов не даст. Именно так обстоит дело с генерацией превью. Это достаточно простой и понятный процесс, и если что-то пошло не так, то велика вероятность того, что мы просто пока не научились делать превью для этого типа файлов, а значит, повторение этой стадии – дело бессмысленное. Необходимость повтора операции, а также количество повторов, после которого она окончательно переходит в состояние fail прописывается для каждой стадии отдельно. Приведет ли сбой при выполнении той или иной стадии к провалу всей задачи, зависит от параметра обязательности успешного выполнения. Например, как уже говорилось выше, генерация превью далеко не всегда завершается успешно. Но для пользователя наличие превью в веб-интерфейсе не критично, главное, что доступ к своим файлам получен, а значит, основная задача выполнена. Однако если сбой произойдет на более важной стадии, такой как передача файла в хранилище, провалена будет вся задача. В этом случае десктопный клиент повторит попытку сам, а при заливке через веб пользователю будет передано сообщение о неудаче, после чего он может попробовать загрузить файл заново. Кроме того, у каждой стадии есть максимальное время выполнения. Если стадии для успешного завершения требуется много времени, она может переходить в состояние «в процессе» (in progress). Обычно это происходит при получении файла от пользователя, так как загружаемые файлы бывают достаточно большими (максимальный объем файла на Диске – 10 ГБ), а скорость подключения – низкой.

Только не дисконнект! Только не дисконнект!

При передаче файла на машину загрузчика может случиться всякое. Например, может пропасть соединение с пользователем. В этом случае стадии присваивается статус temp fail, а после восстановления соединения закачка возобновляется.Используемые источники:

  • https://efsaver.ru/blog/medlennaya-zagruzka-fajlov-na-yandeks-disk.html
  • https://fast-wolker.ru/papka-zagruzki-yandeks-disk-reshaem-problemy.html
  • https://habr.com/post/186752/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации