Двусторонняя синхронизация не работает в OneDrive при использовании символических ссылок или соединений

Двусторонняя синхронизация не работает в OneDrive при использовании символических ссылок или соединений

Я уже много читал о проблемах с символическими ссылками и Windows 10 в интернете, но не о том явлении, с которым я столкнулся сейчас. Так вот…

Моя цель — синхронизировать папку («Моя музыка»), расположенную на отдельном разделе данных моего SSD-диска, в облако OneDrive через символьную ссылку. Все работает отлично… кроме 2-сторонней синхронизации. Она остается улицей с односторонним движением. :-(

Раздел данных и системный раздел Windows имеют файловую систему NTFS. Раздел данных имеет букву ( X:). У меня есть существующая учетная запись OneDrive, на которой пока нет файлов и папок.

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

  1. Открыл свою учетную запись OneDrive онлайн.
  2. Настроил OneDrive на моем компьютере.
  3. Сохранить стандартное расположение моего OneDrive на системном разделе: C:\Users\<my user name>\OneDrive.
  4. Откройте командную строку от имени администратора.
  5. Создал соединение с помощью этой команды:mklink /J “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”
  6. Ссылка ‘My Music’отображается в виде папки под значком OneDrive в проводнике Windows.
  7. Проверил, работает ли ссылка на папку ‘My Music’на моем разделе данных. И она работает отлично.
  8. Перейти в OneDrive онлайн. ‘My Music’Папка также появилась в моем OneDrive онлайн.
  9. Загрузил случайный файл со своего компьютера в ‘My Music’папку, чтобы проверить синхронизацию.
  10. Загруженный файл появляется в моем OneDrive онлайн.
  11. Возвращаюсь в проводник Windows на моем компьютере. Загруженный файл появился в ‘My Music’папке на разделе данных по созданной ссылке.

Пока все хорошо. Все, что я загружаю в OneDrive онлайн, отлично отображается в папке раздела данных. Но проблема в том, что двусторонняя синхронизация не работает. Если я что-то меняю в папке ‘My Music’на разделе данных, это изменение отображается в той же папке OneDrive, которая связана (очевидно), но на этом все и заканчивается: синхронизация с OneDrive онлайн не происходит. Почему так и каково решение?

Точно то же самое происходит, если я использую не соединение, а символическую ссылку:mklink /D “C:\Users\<my user name>\OneDrive\My Music” “X:\My Music”

И мой второй вопрос: как возможно, что результат будет ровно обратным, когда я меняю процедуру и сначала создаю соединение (или символическую ссылку), а затем настраиваю OneDrive на своем компьютере? Так что в этом случае синхронизация файла с OneDrive онлайн через созданную ссылку работает нормально, но если я что-то меняю в папке «Моя музыка» в OneDrive онлайн, это изменение не отображается в папке на моем разделе данных. Опять же, это только один способ.

Я просто не понимаю. Есть ли у кого-нибудь ответы, пожалуйста? Спасибо заранее!

решение1

Заэта тема на форумах Microsoft, похоже, что OneDrive получал уведомления о событиях изменения файлов из псевдонимов (соединений/символических ссылок) примерно 31.05.2017 (см. ответ, помеченный как лучший ответ), но 17.01.2018 кто-то сообщил, что они были повреждены, и автор ответа, помеченного как лучший ответ, похоже, подтвердил это.

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

К сожалению, я думаю, что сейчас это сломано.

В этой теме есть несколько упоминаний о способах решения проблемы:OneDriveBullyдля периодического ручного запуска (полной?) синхронизации OneDrive и универсальные утилиты синхронизации папок для двусторонней синхронизации двух каталогов (что потребует в 2 раза больше дискового пространства и, вероятно, вызовет много головной боли, когда это потребуется, например, при обработке конфликтов). Мне ни один из них не нравится.

решение2

Я бы не чувствовал себя в безопасности, размещая папку Desktop на внешнем диске, поскольку мой Desktop не загрузится, если SD-карта отсутствует или повреждена. Поэтому я предпочитаю хранить Desktop в его расположении по умолчанию на локальном диске C: и просто помещать соединительную ссылку на Desktop в папку OneDrive на внешнем диске.

Проблема в том, mklink /Jчто внешние диски не синхронизируются с OneDrive, как ожидалось. Синхронизация не происходит мгновенно при изменении файлов. (в других отчетах раньше работало, но с января 2019 года у меня не работает).

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

Например, я только изредка сохраняю файлы на рабочем столе, поэтому я помещаю ссылку Junction в папку OneDrive (которая находится на внешней SD-карте). Обычно я перезагружаю компьютер по крайней мере раз в день, поэтому рабочий стол синхронизируется ежедневно.

(Это будеттакжесинхронизация, когда onedrive ставится на паузу и затем снимается с паузы, но вручную постоянно приостанавливать/снимать с паузы не удобно)

Для Documents я хочу постоянную синхронизацию немедленно при изменении файлов, поэтому я переместил свою папку Documents в OneDrive на внешней SD. Если SD-карта отсутствует или повреждена, моя учетная запись все равно сможет войти и загрузиться (так как это не зависит от папки Documents).

Mklink /Hне допускается с внешними дисками.

решение3

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

mklink /J "C:\...\OneDrive\SourceFolder" "C:\SomewhereElse\HardlinkedFolderToCreate"

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

решение4

Как ни странно, при небольших структурах папок это прекрасно работает как с символическими ссылками, так и с соединениями.

Но если я создаю слияние или символическую ссылку на структуру папок размером в несколько десятков гигабайт с примерно 100 000 папок и файлов, это не работает. Вместо этого OneDrive, похоже, навсегда остается в состоянии «Поиск изменений».

Связанный контент