我的任务是将实时 SharePoint 文档库迁移到另一个文档库。由于我们希望将停机时间降至最低,我已使用 OneDrive 将两个文档库同步到我的电脑,并使用 robocopy 在两个本地副本之间进行镜像。网络共享的非常常规的东西。
但是,我注意到当我重新运行镜像命令时,robocopy 再次复制了很多文件。我可以预期会有一些变化,但不会有数千变化。此外,robocopy 将文件标记为“已更改”,在我看来,这是 robocopy 的一个非常不寻常的复制原因 - 这意味着时间戳未更改,但文件的大小已更改......
进一步的诊断显示,只是再次复制了 Office 文档,例如 pptx。其他文件类型(例如 PDF 和图形文件)只需复制一次即可。
我最终将其归结为这一观察:
尺寸已改变。下面是一个 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"
Run Code Online (Sandbox Code Playgroud)
这是输出:
Source size: 1996810
After copy size: 1996810
After sync size: 1997141
Run Code Online (Sandbox Code Playgroud)
谁能解释一下为什么文件大小会改变?另一个观察结果是,OneDrive 会说“正在上传”,然后立即说“正在下载”——此时文件大小发生变化。
使得在 OneDrive 上使用同步工具变得相当困难。不用说,Google Drive 或 Dropbox 不存在同样的问题。
最后一点:OneDrive“按需”已启用。
在与 Microsoft 讨论此问题并阅读上面链接的文章后,这是“设计使然”,因为 OneDrive 会在上传后向 Office 文档添加额外的元数据,因此它们会立即上传然后下载。因此,这会改变文件的大小。对于那些可能依赖文件大小/MD5 校验和来确保文档完整性的人来说,这是一个问题。个人版本的 OneDrive 似乎不会发生这种情况,并且非 Office 文档不会更改。
归档时间: |
|
查看次数: |
5124 次 |
最近记录: |