Контакты

Секреты Яндекс Диск: как установить, войти и пользоваться. Яндекс Диск: как им пользоваться, загружать и скачивать файлы, фото. Как настроить авто-создание копии моих документов Как перенести все данные на яндекс диск

Всем доброго дня! Сегодня речь зашла об очень удобном сервисе, который я давно использую в своей работе – Яндекс Диск . Что это за «зверь» такой? - возможно, спросите вы. Об этом я подробно расскажу в статье ниже. Если у вас будут какие-то вопросы, задавайте их в комментариях, будем разбираться и искать ответы! Ну а пока познакомимся с одним из самых удобных файловых хранилищ от разработчиков популярной российской поисковой системы Яндекс.

1. Яндекс Диск: что это такое

Яндекс.Диск – это популярное облачное хранилище, которое позволяет пользователям хранить различную информацию (фото, видео, аудио, тексты и прочие файлы) в так называемом «облаке», т.е. на сервере в сети. Данными, хранящимися на Яндекс.Диске можно делиться с другими пользователями, а также получать к ним доступ с различных устройств – других компьютеров, планшетов и смартфонов. Базовая версия Яндекс.Диска совершенно бесплатна и доступна для всех желающих. Я помню, что в 2012 году зарегистрироваться в нем можно было только по приглашению, и я пользовался альтернативным сервисом – Dropbox. Но сейчас полностью перешел на Облако Яндекс Диск. Ведь бесплатные, да еще и доступные отовсюду 10 Гб не бывают лишними.

2. Яндекс Диск: как пользоваться – пошаговая инструкция

Итак, я вас убедил, и вы решили установить Яндекс Диск на компьютер. Теперь подробно разберемся как пользоваться Яндекс Облаком (так еще называют Яндекс.Диск, поскольку он является облачным хранилищем данных).

2.1. Как создать Яндекс Диск (регистрация в Яндекс Облаке)

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

4. Установка Яндекс.Диска на смартфон . Бесплатные приложения доступны для iOS и Android, поэтому их без проблем можно скачать в App Store и Google Play. У приложения для iOS не очень большой рейтинг, есть некоторые недочеты, это все можно увидеть в отзывах.

2.3. Яндекс Диск: сколько места бесплатно?

Сразу после регистрации и установки Яндекс.Диска вам доступно 10 бесплатных Гб места в Облаке. Для начала этого вполне достаточно, мне хватило где-то на полгода. Что делать, если места не хватает?

  • Дополнительные бесплатные 10 Гб за приглашения друзей . Вы можете получить по 512 Мб бесплатного облачного места за каждого приглашенного друга. Перейдите сюда - https://disk.yandex.ru/invites и вы увидите свою рефферальную ссылку, которую необходимо скопировать и отправить друзьям. После регистрации каждого пользователя по вашей ссылке, вы получите дополнительное место на Диске, а приглашенный друг – дополнительный 1 Гб.

  • Дополнительные до 250 Гб в подарок от партнеров Яндекса . Регулярно проводятся различные акции, которые позволят получить дополнительные гигабайты свободного места. Отслеживать текущие акции можно на этой странице .

Ну и конечно, как можно ожидать от Яндекса, дополнительное место можно купить . Однако удовольствие не из дешевых:

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

2.3. Вход в Яндекс Диск

Регистрация пройдена, с доступным местом разобрались, возникает вопрос – ?

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

1. Открыть ярлык папки Яндекс.Диск на Рабочем столе, если вы его не удалили после установки.

2. Открыть Яндекс.Диск в папке Мой Компьютер.

3. Кликнуть по иконке Яндекс.Диска в панели задач, расположенной в крайнем правом углу экрана.

4. Войти в свою почту на Яндексе через любой браузер и вверху будет ссылка на Облако:

6. Зайти на главную страницу Яндекса, будучи залогиненым в почте. В правом верхнем углу будет ссылка на Яндекс.Диск:

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

Рассмотрим теперь самый главный момент, из-за которого мы и совершили все эти действия – . Опять же, есть несколько способов это сделать:

1. Через контекстное меню . Выбираем файл, который необходимо залить в Облако, кликаем по нему правой кнопкой мыши и выбираем пункт: «Яндекс.Диск: Скопировать публичную ссылку»:

2. Скопировать файл в папку Яндекс.Диск (как в нее войти, я писал выше). По умолчанию эта папка синхронизируется автоматически, поэтому при копировании туда, все файлы будут сразу добавлены на ваш Диск.

3. Загрузить файлы через мобильное приложение iOS или Android. Этот способ я могу рассмотреть в отдельной статье, если вы оставите такое пожелание в комментариях.

4. Залить файл в Облако через браузер . Для этого достаточно просто перетащить мышкой выделенные файлы в окно браузера с открытым Яндекс.Диском:

5. Копирование чужих файлов . Если с вами кто-то поделился ссылкой на файл, который хранится на Яндекс.Диске, вы без проблем можете сохранить его и в свое Облако. Для этого нужно перейти по присланной ссылке вида https://yadi.sk/*** и справа нажать на кнопку «Сохранить на Яндекс.Диск».

. На Яндекс Диск можно загружать фотки из различных социальных сетей, практически в один клик. Для этого зайдите в него через браузер, в левой колонке выберите пункт «Фото из сетей» и авторизуйтесь в нужной социалке. На момент написания статьи актуальна загрузка фоток из ВК, Инстаграмма, Одноклассников, ФБ, Мэйл и Гугл+.

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

Еще часто спрашивают - как загрузить папку на Яндекс Диск . Принцип тот же, как указано выше в разделе с файлами. Но появляется еще одно дополнительное преимущество – папке можно назначить Общий доступ. Таким образом, другие пользователи, которым вы предоставите права доступа, смогут просматривать и скачивать файлы в этой папке, а также заливать туда свои файлы.

Как загрузить видео на Яндекс Диск? – тоже очень популярный вопрос пользователей Облака. Это связано с тем, что видеофайлы обычно имеют большой объем, и многие переживают, что они просто не «влезут» и хранить их там нельзя. Это не так, видеофайлы также как и фотки, можно заливать и хранить на Яндекс.Диске.

2.5. Яндекс Диск: как передать файлы другому пользователю

Также можно убрать доступ к файлу, кликнув мышкой и переключив в положение ВЫКЛ.

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

Переходим: Пуск -> Панель управления -> Программы и компоненты

В появившемся окне выбираем Яндекс.Диск (обычно он самый последний в списке) и нажимаем кнопку «Удалить». Загруженные файлы останутся в вашем аккаунте, удалено будет только приложение с компьютера.

30 ноября 2013 года появились первые сообщения от пользователей что у них:
  • Возникла ошибка при запуске....dll
  • Запуск программы невозможен так как отсутствует....dll
  • Не найдена библиотека....dll
  • Слет активации (как следствие пропажи системных файлов)

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


Проверить лог Яндекс Диска можно в C:\Users\%USER% \AppData\Local\Yandex\Yandex.Disk\YandexDiskInstaller.log, где %USER% - имя пользователя в системе.

Решение?

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

UPD: Если вы еще не перезагружали компьютер, но нашли в логе строчки о запланированном удалении.
Почистите параметр реестра PendingFileRenameOperations, который находится в разделе HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\

Представители Яндекса так прокомментировали случившееся:

Здравствуйте!

Мы исследовали проблему с ОС Windows более подробно и обнаружили, что в некоторых случаях из-за несовместимости приложения Яндекс.Диск и операционной системы могут возникать неполадки с работой системы и её загрузкой. Мы уже обновили версию программы, в которой подобные ошибки были исправлены, скачать ее Вы можете со страницы disk.yandex.ru/download . В случае, если запустить систему не удаётся, попробуйте восстановить её с помощью точек восстановления или переустановить Windows. Мы обязательно сделаем все возможное, чтобы подобная ситуация не повторялась в будущем.
Приносим свои извинения за неудобства!

В данный момент полностью вернуть работоспособность испорченных систем не удалось.

Обсуждение данной проблемы ведется на форуме Ru-Board

UPD2: Более подробно о ситуации с Яндекс.Диском (vladimirrusinov)

К сожалению, в процессе тестирования версии Диска для Windows 1.1.5 не была выявлена ошибка в компоненте uninstaller.

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

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

Служба поддержки в период после выкладки релиза внимательно отслеживает проблемы, о которых сообщают пользователи, и передает их разработчикам и менеджерам.

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

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

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

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

Напоминаем, что проблемная версия приложения – 1.1.5. Мы выпустили еще две промежуточные версии. Стабильная версия программы имеет номер 1.1.8. Удостовериться, что у вас нужная версия программы, или получить нужный апдейт можно в меню Диска (" Справка" - «О программе» - «Проверить обновления»).

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

Со временем на вашем компьютере или ноутбуке накапливается достаточно большое количество файлов – 1000, 2000, а то и 500 000 . Их важность может быть очень высока, особенно если это семейные фотографии, видео, рабочие документы.

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

Где хранить резервные копии: на внешнем HDD или довериться облаку?

Когда еще не было "облаков", резервные копии обычно хранили:

  • на локальном ПК
  • внешнем (съемном) USB-носителе, флешке или DVD
  • на сервере в локальной сети
  • на удаленном FTP-сервере

Продвинутые пользователи и системные администраторы также копировали файлы на удаленные сервера по протоколам FTP / SSH / WebDAV и т.п. Теперь появилась дополнительная возможность – хранить папки в интернете, на сервере от компании Яндекс.

Что такое Яндекс Диск?

Я ндекс диск - это облачный сервис, позволяющий хранить файлы на сервере, под вашей учетной записью. По-умолчанию, вам предоставляется 10 ГБ дискового пространства бесплатно и навсегда с возможностью дальнейшего увеличения. Благодаря доступности и удобству этот сервис быстро набрал популярность и по состоянию на октябрь 2018 года им пользуются уже более 16 млн. пользователей.

Преимущества хранения в облаке

  • Хранение файлов вне офиса (вне дома) позволяет уберечь данные от пожара и вирусов
  • Высокая надежность, так как папки дополнительно резервируются Yandex"ом, а передача осуществляется по защищенному протоколу
  • Доступность данных из любой точки планеты
  • Высокое доверие, поскольку компания Яндекс уже много лет работает на рынке ИТ– это лидер в области ИТ и интернет-сервисов в России и странах СНГ.

Недостатки

  • Ресурс ограничен 10 ГБ, увеличение размера платное
  • Очень секретную (конфиденциальную) информацию, представляющую коммерческую тайну, все же не рекомендуется хранить в "облаках"

Хранить резервные копии в интернете или нет – решать вам. Если вы – обычный пользователь, у которого не слишком секретные данные и их объемы порядка 3 - 6 ГБ (не превышает 10 ГБ), то резервное копирование на Яндекс.Диск – отличное бесплатное решение для обеспечения сохранности файлов документов, бэкапа фото-видео ! Как правило, для хранения нескольких копий наиболее важных файлов указанного объема вполне достаточно.

Exiland Backup - простой инструмент бэкапа в облако

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

Михаил, разработчик Exiland Backup

Котировки акций «Яндекса» на бирже NASDAQ вскоре после открытия торгов снизились почти на 10%. Падение стоимости бумаг объясняется реакцией инвесторов на потенциальное появление Сбербанка в составе акционеров «Яндекса», считают аналитики.


Акции «Яндекса» на NASDAQ в Нью-Йорке к 20:35 мск рухнули более чем на 9,66% к предыдущему дню, до $32,41, свидетельствуют данные биржи. Капитализация компании составила $10,6 млрд, тогда как 17 октября на закрытии торгов достигала $11,7 млрд. К 00:22 мск котировки «Яндекса» на NASDAQ снизились на 17,8%, до $29,49 за акцию, или $9,6 млрд за всю компанию.

Ранее издание The Bell сообщило, что Сбербанк ведет переговоры о покупке крупного пакета акций «Яндекса» - до 30% капитала. По версии источников издания, таким образом госбанк предлагает «оградить компанию от возможных проблем с конкурентами и с государством». «Сбербанк не получал предложения о выкупе акций "Яндекса" и не обращался к "Яндексу" с подобным предложением. Возможность такая не обсуждается»,- сообщили “Ъ” в пресс-службе Сбербанка. «Мы не комментируем слухи»,- сообщили в пресс-службе «Яндекса».

Интернет-компания не делала Сбербанку такое предложение, уверен собеседник “Ъ”, знакомый с ситуацией.

В России интернет-холдинги продолжают укрупняться: недавно было объявлено об альянсе Mail.ru Group и российскими активами китайской Alibaba Group, напоминает собеседник “Ъ” в Сбербанке. По его мнению, покупка доли в «Яндексе» могла бы стать «эволюционным и прогрессивным шагом», «чтобы не упускать инициативу».

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

Падение котировок «Яндекса» связано с появлением информации о возможном вхождении Сбербанка в его капитал, считают опрошенные “Ъ” аналитики. Первый вопрос - какая предполагается структура сделки, будут ли выпущенные новые акции, либо произойдет выкуп у существующих акционеров, отмечает аналитик «Уралсиб» Константин Белов.

Фактический контроль над «Яндексом» сейчас у основателя Аркадия Воложа и его партнеров, и первый вопрос, который возникает у инвесторов, может ли сделка со Сбербанком это поменять, полагает он.

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

«Яндекс» - компания, в которой основатель является крупнейшим акционером, это обычно инвесторам нравится, а госучастие - напротив, не нравится, соглашается аналитик Райффайзенбанка Сергей Либин. Похожая ситуация была с акциями «Магнита», когда было объявлено о выкупе пакета ее основателя Сергея Галицкого банком ВТБ: в результате котировки «Магнита» упали почти в три раза, напоминает аналитик.

У «Яндекса» - два класса акций; скорее всего, речь может идти о покупке «суперголосующих» акций - такие бумаги есть у Аркадия Воложа и других сотрудников, говорит Сергей Либин. «30% с рынка купить - это долго, трудно, дорого. Проводить допэмиссию смысла нет, потом что это размоет капитал "Яндекса" и снизит стоимость. Имеется в виду выкуп у Аркадия Воложа»,- предполагает Сергей Либин. По его оценке, 30% «Яндекса» стоят около $3 млрд.

Между «Яндексом» и Сбербанком может быть достаточно большой потенциал сотрудничества, поскольку у «Яндекса» «хороший баланс» и нет потребности в новом финансировании, то есть партнерства между компаниями могут быть в совместных проектах, полагает Константин Белов. Пример тому - «Яндекс.Деньги», напоминает он.

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

Сбербанк уже имеет «золотую акцию» «Яндекса» - в тот момент, когда банк ее получил, у государства уже было желание каким-то образом контролировать «Яндекс»,

и золотая акция была «компромиссным вариантом, при котором контроль минимален». Прямого участия Сбербанка в капитале «Яндекса» нет, но есть инструмент, которая дает право какие-то решения, которые неугодны государству, блокировать, говорит он. «Можно предположить, что желание контролировать "Яндекс" у государства всегда присутствовало, и сейчас разговоры об этом снова начались»,- считает аналитик.

Владислав Новый, Анна Афанасьева

Сегодня мы представляем долгожданный клиент Яндекс.Диска для Linux. Можно было бы даже сказать «специально для Хабрахабра», так как ни одно упоминание Диска здесь не обходилось без вопросов о клиенте для Линукса.

У него есть вся основная функциональность, которая есть у клиентов для OS X и Windows, и даже больше (симлинки!), и одна особенность - он консольный.

Ниже читайте о том, как он настраивается, что конкретно умеет, и о том, как именно он устроен и что в нём было непросто сделать.


Установить его можно . Сразу после установки пакета в терминале появится команда yandex-disk , через которую в дальнейшем и идет общение с облаком Яндекса. После этого нужно вручную запустить команду setup .

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

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

Опция read-only позволит менять файлы локально, без заливки их в облако. При возникновении конфликтов с локальными изменениями, последние будут сохранены в переименованных файлах, а изменения из облака будут синхронизированы. Опция overwrite будет перезаписывать локально измененные файлы в режиме read-only.

Не можем не похвастаться самым интересным нововведением в ядре синхронизации - отныне мы поддерживаем синхронизацию симлинков! Если возникнут трудности и вопросы в использовании консольного клиента команды man и help просто и доступно помогут в них разобраться.

Как сделан

Чтобы в будущем код можно было использовать для реализации клиентов под разные ОС, было принято решение писать его на C++. Специфичные для разных операционных систем куски кода мы вынесли в отдельные функции или классы, а под каждую платформу писали свою реализацию. В качестве основных кроссплатформенных библиотек мы взяли Boost , OpenSSL и , а системой контроля версий стал git . Клиент под Linux собирался с помощью autoconf . Код писался и отлаживался в связке KDevelop + консольный gdb, либо в Qt Creator"е (в зависимости от предпочтений разработчика).

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

Как работает

Консольный клиент состоит из двух частей: демона и клиента. Общаются они посредством текстовых пакетов содержащих json-сообщения, посылаемые через сокеты (на Linux и Mac OS X используются unix-domain сокеты). Асинхронная работа реализована с помощью библиотеки boost::asio. Синхронизация доступа к данным реализуется через boost::asio::io\_service::strand, что позволяет не думать о проблеме одновременного доступа к данным нескольких потоков, а также исключает появление deadlock-ов.

Для локализации мы используем библиотеку boost::locale. Текст внутри клиента закодирован в utf-8 и по необходимости преобразовывается в специфичном для каждой операционной системы коде. Мониторинг файловой системы для Linux использует inotify, прекрасно вписыващийся в асинхронную работу boost::asio.

Как устроена синхронизация

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

1 . Мониторинг файловой системы . Ядро синхронизации Яндекс.Диска проектировалось и создавалось как переносимая абстракция, способная выполнять поставленные задачи на всех поддерживаемых платформах. Но такая проблема, как мониторинг файловой системы не реализуется ни стандартной библиотекой C++, ни даже такими монстрами как boost. Более того, даже используя «родное» API операционной системы, мы получаем набор событий, специфический для каждой платформы.

Для мониторинга файловой системы был спроектирован интерфейс «наблюдателя», способного следить за событиями в определённой директории и возвращающего список событий, произошедших в ней. Причём для каждой поддерживаемой платформы набор этих событий отличается. Например, Mac OS X способна сообщить только о факте какого-то изменения в одной из дочерних директорий без детализации. А вот Windows и Linux возвращают полный набор, включая создание, удаление, модификацию и перемещение объектов. Хотя практика показывала, что событиям на платформе Windows доверять не стоит и самым надёжным вариантом остаётся листинг директории после получения оповещения.

2 . Индексация локальных файлов и директорий . Для контроля целостности и реализации дельта-обновления файлов ядро синхронизации Яндекс.Диска использует дайджесты - наборы контрольных сумм файла и отдельных его частей. Для всего файла мы рассчитываем стойкий хэш SHA-256 и набор менее стойких сумм для отдельных блоков. Каждый файл, находящийся в папке Яндекс.Диска и не попадающий в список исключений, должен быть проиндексирован. Но вычисление хэша SHA-256 -достаточно дорогая операция, а расчёт хэшей при каждом запуске ПО был бы непростительной тратой ресурсов. Поэтому после того, как завершается индексация файла, ядро синхронизации сохраняет полученный дайджест в «банке» - специальном хранилище, находящемся в служебной директории Яндекс.Диска. Для поиска дайджестов в хранилище используется уникальный идентификатор файла - inode (размер и время последнего изменения). К сожалению, подобный подход не лишён недостатков. Например, многие файлы-криптоконтейнеры сохраняют время последней модификации неизменным даже после записи.

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

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

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

3 . Получение дерева облачной файловой системы . Для решения проблемы синхронизации мало иметь локальную файловую структуру и дайджесты файлов - необходимо получить текущее состояние файловой системы в облаке. Если бы ядру синхронизации каждый раз приходилось обходить дерево с помощью метода PROPFIND , то каждый цикл синхронизации занимал бы неоправданно много времени и создавал бы излишнюю нагрузку на канал. Поэтому ПО Яндекс.Диска использует специальный API, который даёт возможность получать текущее состояние дерева файлов в облаке и изменения, произошедшие в нём, начиная с некоторого известного момента, определяемого версией дерева.

4 . Получение оповещений об изменении облачной файловой системы . Синхронизация файлов в реальном времени требует своевременного получения оповещений об изменениях, произошедших с файлами в облаке. Можно было бы использовать периодический опрос сервера клиентами, но, оценив возможное количество клиентов, мы пришли к выводу, что такой подход окажется слабо масштабируемым и приведёт к быстрой перегрузке инфраструктуры сервиса. После недолгих поисков мы остановились на протоколе XMPP. Одна из его реализаций уже долгое время работает в Яндексе. Она была разработана командой, которая позже занимались созданием сервера WebDAV для проекта Яндекс.Диск, поэтому сложностей с интеграцией этого протокола не возникло.

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

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

6 . Обработка очереди операций синхронизации . Создание списка операций для локального и удалённого деревьев происходит независимо. В результате могут появиться конфликтующие операции. Например, удаление в облаке файла, который был в нём изменён и ещё не синхронизирован локально, или изменение файла одновременно локально и в облаке. Конфликты модификации/удаления всегда разрешаются ядром в пользу модификации, а конфликты двойной модификации разрешаются переименованием одной из версий файла. Таким образом мы можем гарантировать сохранность данных и даём возможность после завершения синхронизации самому пользователю решить, какое из изменений больше ему подходит в каждом конкретном случае.

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

Кроме зависимостей на порядок выполнения операций оказывает влияние её приоритет. Например, операции передачи файлов выполняются в зависимости от размеров файлов - от маленьких к большим.

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

Понравилась статья? Поделитесь ей