Почему OneDrive меняет размер файлов?

Почему OneDrive меняет размер файлов?

Мне поручили перенести работающую библиотеку документов SharePoint в другую библиотеку документов. Поскольку мы хотим свести время простоя к минимуму, я синхронизировал две библиотеки документов на своем ПК с помощью OneDrive и использую robocopy для зеркалирования между двумя локальными копиями. Довольно рутинная работа для сетевых ресурсов.

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

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

В конце концов я пришел к такому выводу:

  1. Скопируйте файл в OneDrive, используя (например) cmd.exe copy
  2. Посмотрите размер файла сразу в OneDrive и он совпадет с исходным размером.
  3. Подождите, пока OneDrive синхронизирует его, и проверьте размер файла еще раз.

Размер изменился. Вот скрипт PowerShell, который копирует файл, немедленно получает размер, ждет 15 секунд (для синхронизации) и снова получает размер.

$SourceFile = "S:\Temp\Helios\Library\Example.pptx"
$TargetFile = "C:\Users\rob.nicholson\Helios Medical Communications\Library - Documents (unused)\Example.pptx"
Copy-Item $SourceFile $TargetFile
$Length1 = (Get-Item $SourceFile).Length
$Length2 = (Get-Item $TargetFile).Length
Start-Sleep 15
$Length3 = (Get-Item $TargetFile).Length
Write-Host "Orignal size:    $Length1"
Write-Host "After copy size: $Length2"
Write-Host "After sync size: $Length3"

Вот что получилось:

Source size:     1996810
After copy size: 1996810
After sync size: 1997141

Может кто-нибудь объяснить, почему размер файла меняется? Другое наблюдение заключается в том, что OneDrive сначала говорит «Загрузка», а затем сразу же говорит «Загрузка» — то есть, когда размер файла меняется.

Делает использование инструментов синхронизации довольно сложным с OneDrive. Само собой разумеется, что Google Drive или Dropbox не имеют той же проблемы.

И последнее замечание: функция OneDrive «По запросу» включена.

решение1

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

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