четверг, 14 декабря 2017 г.

Синхронизация любых папок Windows с Диск.Яндекс


Имеется задача синхронизации с облаком Диска.Яндекс папок Windows, которые не должны быть расположены в созданной клиентом папке YandexDisk. Это необходимо для того, чтобы не вызвать "лишних вопросов" у пользователя вследствие внесения изменений в привычную ему иерархию папок. А так как вся существующая у пользователя иерархия папок по своему объёму превышает ёмкость Диска.Яндекс, соответствующей его учётной записи, то решение задачи по синхронизации с облаком выбранных папок ранее осуществлялось при помощи десктопных клиентов pCloud, MEGA или Google Drive.

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

Запустите командную строку от имени администратора:


Используя синтаксис команды mklink создадим символические ссылки на папки Books fb2 и Images, расположенные в папке C:\Data.

При создании ссылки на Books fb2, которой будет назначено имя FB2, в командной строке зададим команду перехода в папку C:\Data\Books fb2. Этой командой будет cd C:\Data\Books fb2

Зачем надо переходить в папку?

При запуске командной строки обратите внимание на Ваше, условно говоря, местонахождение. Вам будет указан путь C:\Windows\system32. Поэтому при создании ссылки с именем, например, 000, созданную ссылку Вам придётся найти самостоятельно в папке C:\Windows\system32



При создании ссылки на папку необходимо использовать ключ /D, после которого указать имя ссылки (FB2) и путь, на который она будет ссылаться. Так как наименование папки Books fb2 является именем с пробелом, то путь берётся в кавычки. Полная команда имеет вид:

mklink /D FB2 "C"\Data\Books fb2"

Посмотрите на поясняющий рисунок (если плохо видно, то кликните по нему):


В результате Вы получите символическую ссылку под именем FB2:


Используя операции "вырезать" и "вставить" поместите полученную ссылку FB2 в папку Яндекс.Диск. Клиент Яндекс.Диска сразу же начнёт процедуру синхронизации данных. Причём символическая ссылка FB2 будет воспринята Диском.Яндекс как обычная папка.


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


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


Аналогичным образом создаём символическую ссылку для папки Images. Так как в имени Images пробелов нет, то путь указывается без кавычек. Поэтому после запуска командной строки от имени администратора будет введено 2 команды:

cd C:\Data\Images  и  mklink /D Images C:\Data\Images






В дальнейшем через настройки клиента можно или продолжать синхронизировать указанные нами через символические ссылки папки или исключить их из процесса синхронизации.


Чтобы рассеять последние возможные сомнения, обратитесь к Диску.Яндекс через браузер https://disk.yandex.ru.


Альтернативный способ

Данный "рецепт" был найден на просторах Интернет и даётся по принципу as is (как есть), то есть без комментариев.

1) Копируем папку, для которой нам нужно создать символьную ссылку.

2) Идём в каталог:

C:\Users\*имя пользователя*\AppData\Roaming\Microsoft\Windows\Network Shortcuts

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

3) Жмём правой клавишей по окну каталога и выбираем «Вставить ярлык». Система создаст символьную ссылку до исходного каталога и теперь её можно перенести в нужное для вас место и переименовать.

Почему так сложно? Ведь ярлык это тоже ссылка!

Следует отметить, что вследствие отсутствия в русскоязычной Windows чёткости в значениях терминов (с чем сталкиваешься не в первый раз, достаточно вспомнить термин "диск"), может сложиться впечатление, что создание символической ссылки и создание ярлыка в Windows – это одно и то же.

Для демонстрации различий проведём маленький эксперимент. Попробуем создать ярлык для папки C:\ftp и затем поместить его в папку Диск.Яндекс.

После выделения папки используем правое контекстное меню мыши и выбираем "Создать ярлык", переименуем его в ftp и поместим его в папку Диска.Яндекс.


На первый взгляд, всё хорошо: данные синхронизируются, а при вызове папки ftp в Диске.Яндекс система отправляет нас в нужное место.



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


Примечание.

На одном из реальных ПК командная строка "категорически отказывалась" переходить в папку на Диске D, для которой должна была быть создана символическая ссылка. Причём при любом типе запуска командной строки она запускалась с приглашением только как C:\Users\имя_пользователя. В этом "безнадёжном" случае пришлось воспользоваться сторонним программным обеспечением Link Shell Extension.



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


Затем перейти в папку Диска.Яндекс (в описываемом случае на ПК папка Диска.Яндекс была расположена по пути D:\Yandex.Disk) и опять же с помощью правого контекстного меню мыши выбрать "Поместить как Символическую ссылку":


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

Комментариев нет:

Отправить комментарий