Сохраняем данные. Автоматическая синхронизация с облачным сервисом Яндекс.Диск при помощи Link Shell Extension. Решение проблем с программой Яндекс.Диск Яндекс диск как синхронизировать файл

Внимание. Программа Яндекс.Диск может быть установлена на 32-разрядная Windows XP Service Pack 3, Windows Vista, Windows 7, Windows 8 (классический интерфейс), Windows 10 и на macOS версии 10.11 или выше (El Capitan, Sierra, High Sierra, Mojave).

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

Не могу авторизоваться

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

Ваш Диск заполнен

Место на Диске закончилось. Удалите ненужные файлы, очистите Корзину или купите дополнительное место .

Папка синхронизации недоступна

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

Диск не настроен

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

Конфликт папки синхронизации

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

Папка синхронизации не выбрана

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

Невозможно загрузить файл больше 10 ГБ

В папке Яндекс.Диск есть файлы объемом более 10 гигабайт. Такие файлы загрузить на Диск нельзя.

Файл не синхронизировался. Что могло произойти?

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

    ваш компьютер не подключен к интернету;

    в настройках Яндекс.Диска отключена синхронизация;

    размер файла, который необходимо синхронизировать, больше 50 ГБ;

    доступ к файлу ограничен (например, файл используется другой программой).

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

Если на вашей macOS установлен Avast Mac Security, отключите сканирование защищенных соединений:

    Нажмите кнопку Предпочтения в левом нижнем углу окна программы.

    В блоке Веб-экран нажмите кнопку Настройки (под кнопкой Выключить ).

    Отключите опцию Сканировать защищенные соединения .

    Нажмите кнопку Готово .

Программа зависла в статусе «Идёт синхронизация»

Измените длинные названия файлов в папке Яндекс.Диска на более короткие. Проверьте, есть ли у программы стабильный доступ в сеть (антивирусы и файрволы могут блокировать соединение).

Низкая скорость синхронизации

Скорость синхронизации рассчитывается с учетом экономии трафика и ресурсов системы. Также скорость может ограничиваться вашим провайдером - проверьте скорость соединения с интернетом.

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

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

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

Что происходит, когда файл изменяется одновременно на разных устройствах?

Допустим, вы нарисовали картинку kartinka.jpg на компьютере, отключенном от интернета, а затем загрузили на Диск фотографию с тем же именем с мобильного телефона.

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

Выборочная синхронизация папок

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

Подробные инструкции по настройке выборочной синхронизации:

Состояние синхронизации в программе

Как синхронизируются измененные файлы?

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

На скольких устройствах можно использовать Яндекс.Диск?

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

Можно ли использовать съемный носитель в качестве папки для синхронизации?

Я отключил синхронизацию, но файлы все равно попадают на диск

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

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

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

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

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

Что произойдет, если переместить папку Яндекс.Диска?

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

Можно ли доверять работу с Диском сторонним программам?

Можно ли не держать файлы, хранящиеся на Диске, на своем компьютере?

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

Настроить выборочную синхронизацию можно по инструкции для Windows , для macOS .

Что произойдет, если я удалю файлы из папки Яндекс.Диска?

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

Внимание. Файлы, перемещенные в Корзину, продолжают занимать место на вашем Диске. Если вам не хватает места, очистите Корзину.

Если вы хотите удалить файл с компьютера, но сохранить на сервере, настройте выборочную синхронизацию по инструкции для Windows , для macOS .

Можно ли ограничить доступ к папке Яндекс.Диска?

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

Что произойдет, если я удалю программу или переустановлю операционную систему?

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

Как выбрать другую папку для синхронизации с сервером?

    Нажмите кнопку Настроить расположение папок .

    Укажите другую папку для синхронизации с сервером.

Как узнать, сколько осталось свободного места на Диске?

Как настроить программу для работы через прокси-сервер?

    Нажмите значок Диска в области уведомлений.

    Выберите в меню пункт Настройки .

    Перейдите на вкладку Прокси .

    Выберите пункт Ручные настройки прокси-сервера .

Как скрыть значок Диска на панели Dock в macOS?

    Нажмите значок Диска в области уведомлений.

    Выберите в меню пункт Настройки .

    Перейдите на вкладку Дополнительно .

    Включите опцию Скрыть значок на панели Dock .

  • Разработка веб-сайтов ,
  • Алгоритмы
  • Яндекс.Диск - один из немногих сервисов Яндекса, частью которого является программное обеспечение для десктопа. И одна из самых важных его составляющих - алгоритм синхронизации локальных файлов с их копией в облаке. Недавно нам пришлось его полностью поменять. Если старая версия с трудом переваривала даже несколько десятков тысяч файлов и к тому же не достаточно быстро реагировала на некоторые «сложные» действия пользователя, то новая, используя те же ресурсы, справляется с сотнями тысяч файлов.

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

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

    Почему это не так просто, как кажется на первый взгляд?

    Теоретически задача может показаться достаточно простой, но в реальности мы сталкиваемся с разными сложными ситуациями. Например, человек переименовал папку на своем компьютере, мы это детектировали и послали команду на бекенд. Однако никто из пользователей не ждет, пока бекенд подтвердит успешность переименования. Человек сразу открывает свою локально переименованную папку, создает в ней подпапку, и, к примеру, переносит в нее часть файлов. Мы попали в ситуацию, в которой невозможно сразу выполнить все необходимые операции синхронизации в облаке. Сначала надо дождаться завершения первой операции и только потом можно продолжать.

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

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

    Прошлая версия алгоритма

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

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


    Процедура сравнения деревьев в старом алгоритме выглядела следующим образом:
    1. Если локальное ожидаемое дерево и облачное ожидаемое дерево пусты, инициализируем их, копируя последнее синхронизированное дерево;
    2. Сравниваем локальное дерево с облачным ожидаемым и по результатам сравнения отдельных узлов добавляем в очередь операции синхронизации в облаке (создание коллекций, передача файлов в облако, перемещение и удаление в облаке);
    3. Для всех операций, которые поставлены в очередь на предыдущем шаге, фиксируем их будущий эффект в ожидаемом облачном дереве;
    4. Сравниваем облачное дерево с локальным ожидаемым и по результатам сравнения отдельных узлов добавляем в очередь операции синхронизации с локальной файловой системой (создание директорий, скачивание файлов из облака, перемещение и удаление локальных файлов и директорий);
    5. Для всех операций, которые поставлены в очередь на предыдущем шаге, фиксируем их будущий эффект в ожидаемом локальном дереве;
    6. Если в очередь попадают одновременные операции с одним и тем же файлом или директорией (например, передача файла в облако и скачивание этого же файла из облака), то фиксируем конфликт - файл изменился в двух местах;
    7. После того, как операция синхронизации выполнена в облаке или с локальной файловой системой, заносим её результат в последнее синхронизированное дерево;
    8. Когда очередь операций синхронизации становится пустой, удаляем локальное ожидаемое и облачное ожидаемое дерево. Синхронизация закончена, и они нам больше не понадобятся.

    Почему нам пришлось придумывать новый алгоритм

    Главными проблемами алгоритма сравнения деревьев стали большое потребление памяти и необходимость сравнения деревьев целиком даже при небольших изменениях, что приводило к большой нагрузке на процессор. Во время обработки изменений даже одного файла использование оперативной памяти возрастало примерно на 35%. Допустим, у пользователя было 20 000 файлов. Тогда при простом переименовании одного файла размером 10Кб потребление памяти вырастало скачкообразно - со 116Мб до 167МБ.

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

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

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

    Новый алгоритм

    Мы решили изменить структуру хранения данных и заменить три дерева (Local Index, Remote Index, Stable Index) на одно, что должно было привести к снижению избыточности в главной структуре данных. Из-за того что ключом в дереве является путь к элементу файловой системы, в результате объединения значительно сократился объем используемой оперативной памяти.


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

    Так как мы понимали, что это серьезное изменение, то создали прототип, подтвердивший эффективность нового решения. Рассмотрим на примере, как меняются данные в дереве во время синхронизации нового файла.

    1. После того как пользователь добавил в папку Диска новый файл, программа обнаружила его и добавила в дерево новый элемент. У этого элемента известно только одно состояние – local. Так как stable и remote состояния отсутствуют, память под них не выделяется;
    2. Программа выполняет upload файла. Из облака приходит push, подтверждающий появление нового файла, и в дерево добавляется remote состояние;
    3. Состояния local и remote сравниваются. Так как они совпадают, добавляется stable состояние;
    4. Состояния local и remote удаляются. Они больше не нужны, так как вся информация есть в stable.


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

    Другие улучшения

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

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

    Цифры

    Синхронизация уникальных 20000 файлов по 10Кб

    Вычисление дайджестов уникальных 20000 файлов по 10кб (индексация)

    Запуск с 20000 синхронизированных файлов по 10Кб

    Upload 1Gb. Соединение Wi-Fi 10 МБит
    Время, сек

    Что получилось

    Из примеров видно, что новая версия ПО Яндекс.Диска использует примерно в 3 раза меньше оперативной памяти и примерно в 2 раза меньше нагружает CPU. Обработка мелких изменений не приводит к увеличению объема используемой памяти.

    В результате проделанных изменений существенно увеличилось количество файлов, с которым без проблем справляется программа. В версии для Windows – 300 000, а на Mac OS X - 900 000 файлов.

    В продолжение темы:
    Интернет

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

    Новые статьи
    /
    Популярные