将本地内容上传到 SharePoint Online

本分步指南介绍如何使用 SharePoint Online Migration PowerShell cmdlet 将内容从本地文件共享迁移到 Office 365。

SharePoint Online Migration PowerShell cmdlet 用于将本地内容从文件共享中移出。它需要最小 CSOM 调用,利用 Azure 临时 BLOB 存储,根据大型数据内容迁移的需求进行扩展。

以下是使用 SPO 迁移 powershell 将本地数据上传到 SharePoint Online 的步骤:

步骤 1:安装 SharePoint Online 命令行管理程序。

步骤 2:设置工作目录

步骤 3:确定位置和凭据

步骤 4:从本地文件共享创建新的内容包

步骤 5:为目标站点转换内容包

步骤 6:提交要导入的内容

步骤 7:处理和监视 SPO 迁移(可选)

先决条件

  • 支持的操作系统:Windows 7 Service Pack 1、Windows 8、Windows Server 2008 R2 SP1、Windows Server 2008 Service Pack 2、Windows Server 2012、Windows Server 2012 R2

  • Windows PowerShell 4.0

注意: 权限:必须是目标站点的网站集管理员。

开始之前

步骤 1:安装 SharePoint Online 命令行管理程序

第一步是安装 SharePoint Online 命令行管理程序。

  1. 卸载所有以前版本的 SharePoint Online 命令行管理程序。

  2. 从此处安装:SharePoint Online 命令行管理程序

  3. 打开“SharePoint Online 命令行管理程序”,并选择“以管理员身份运行”。

返回页首

步骤 2:设置工作目录

在开始迁移过程之前,需要创建两个空文件夹来设置工作目录。这些文件夹无需多大的磁盘空间,因为它们仅包含 XML。

  1. 创建一个临时包文件夹。

  2. 创建一个最终包文件夹。

返回页首

步骤 3:确定位置和凭据

在这一步中,需要确定位置和凭据,包括源文件、目标文件的位置和 Web 位置。

在本地计算机上打开 SharePoint Online 命令行管理程序。运行以下命令,替换值。

$cred = (Get-Credential admin@contoso.com)

$sourceFiles = '\\fileshare\users\charles'

$sourcePackage = 'C:\migration\CharlesDocumentsPackage_source'

$targetPackage = 'C:\migration\CharlesDocumentsPackage_target'

$targetWeb = 'https://contoso-my.sharepoint.com/personal/charles_contoso_com'

$targetDocLib = 'Documents’

返回页首

步骤 4:从本地文件共享创建新的内容包

在此步骤中,从文件共享创建新的迁移包。为了从文件共享创建内容包,New-SPOMigrationPackage 命令会读取源路径所指向的内容列表,并生成 XML 以执行迁移。

除非标记为可选,否则以下参数是必需的:

  • SourcefilesPath:指向要迁移的内容

  • OutputPackagePath:指向临时文件夹

  • TargetWebUrl:指向目标 Web

  • TargetDocumentLibraryPath:指向 Web 中的文档库。

  • IgnoreHidden:用于跳过隐藏文件的选项(可选)

  • ReplaceInvalidCharacters:如果可能,修复无效字符(可选)

示例:

本示例显示如何从文件共享创建新包,忽略隐藏文件并替换文件/文件夹名称中不受支持的字符。

New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $sourcePackage -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib -IgnoreHidden –ReplaceInvalidCharacters

返回页首

步骤 5:为目标站点转换内容包

创建内容包后,使用 ConvertTo-SPOMigrationTargetedPackage 命令来转换临时文件夹中生成的 xml。它将一组新的目标迁移包元数据文件保存到目标目录。这是最终包。

注意: 目标网站集管理员凭据用于收集数据,以连接到数据网站集。

有六个必须输入的参数(其他是可选的)

  • ParallelImport:告诉工具使用并行线程优化性能。

  • SourceFiles:指向包的源内容文件所在的目录位置

  • SourcePackagePath:指向临时包文件夹

  • OutputPackagePath:指向最终包文件夹

  • 凭据:对目标站点具有管理员权限的 SPO 凭据

  • TargetWebUrl:指向目标 Web

  • TargetDocumentLibraryPath:指向目标库的路径

示例:

本示例演示如何通过查找目标网站集中的数据将包转换为目标包。它使用 -ParallelImport 参数来提高文件共享迁移性能。

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -ParallelImport -SourceFilesPath $sourceFiles -SourcePackagePath $sourcePackage -OutputPackagePath $targetPackage -Credentials $cred -TargetWebUrl $targetWeb -TargetDocumentLibraryPath $targetDocLib

返回页首

步骤 6:提交要导入的内容

在此步骤中,Invoke-SPOMigrationEncryptUploadSubmit 命令在目标网站集中创建新的迁移作业,并返回表示作业 ID 的 GUID。此命令按作业将加密的源文件和清单上传到临时 Azure Blob 存储中。

有四个必须输入的参数(其他是可选的):

  • TargetwebURL:指向目标的 Web

  • SourceFilesPath:指向要导入的文件

  • SourcePackagePath:指向要导入的文件的最终清单

  • 凭据:对目标站点具有网站集管理员权限的 SharePoint Online 凭据

示例 1:

本示例演示如何提交包数据以创建新的迁移作业。

$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl

示例 2:

本示例演示如何提交包数据以创建用于并行导入的新迁移作业。

$jobs = $finalPackages | % {Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $_.FilesDirectory.FullName -SourcePackagePath $_.PackageDirectory.FullName -Credentials $cred -TargetWebUrl $targetWeb}

对于每个提交的作业,Invoke cmdlet 会在作业中返回这些属性:

  • JobId:SPO 中作业的 ID

  • ReportingQueueUri:SPO Azure 队列,用于存储迁移的实时进度消息。

  • 加密:将内容上传到 Azure 时使用的加密密钥和方法。它在解密队列消息和导入日志时为必需。

如果使用自己的 Azure 存储帐户,则使用 Set-SPOMigrationPackageAzureSourceSubmit-SPOMigrationJob 将内容上传到存储。

返回页首

(可选)步骤 7:处理和监视 SPO 迁移

提交作业后,仅 Azure 和 SPO 通过交互提取内容并将其迁移至目标。此流程基于计时器作业,这意味着它在一个执行“先到先得”规则的队列中。该流程不阻止同一人将其他作业排入队列。

如果无其他作业运行,可能会存在 1 分钟的延迟。

检查作业状态

可以通过使用步骤 6 中返回的 Encryption.EncryptionKey 查看 Azure 存储帐户队列中发布的实时更新,从而检查作业的状态。

查看日志

如果正在使用自己的 Azure 存储帐户,则可检查 Azure 存储中的清单容器,查看已发生的全部事件的日志。在这个阶段,如果不想在 Azure 中将这些容器保留为备份,可安全将其删除。

如果出现错误或警告,将在清单容器中创建 .err.wrn 文件。

如果使用 Invoke-SPOMigrationEncryptUploadSubmit 在步骤 6 中创建的临时 Azure 存储,则可通过解密带有“Event”值“JobLogFileCreate”的 Azure 队列消息来获取导入日志 SAS URL。通过导入日志 SAS URL,可以下载日志文件,并使用步骤 6 中返回的同一加密密钥对其进行解密。

返回页首

用于重用的脚本方案

以下是可使用的示例脚本,其中包括确定位置和凭据以提交包数据,从而创建新迁移作业的完整步骤。

    
    

$userName = "admin@contoso.onmicrosoft.com"

$sourceFiles = "d:\data\documents"

$packagePath = "d:\data\documentPackage"

$spoPackagePath = "d:\data\documentPackageForSPO"

$targetWebUrl = "https://contoso.sharepoint.com/sites/finance"

$targetLibrary = "Documents"

$cred = Get-Credential $userName

New-SPOMigrationPackage -SourceFilesPath $sourceFiles -OutputPackagePath $packagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -IgnoreHidden -ReplaceInvalidCharacters

# 通过查找目标网站集中的数据将包转换为目标包

$finalPackages = ConvertTo-SPOMigrationTargetedPackage -SourceFilesPath $sourceFiles -SourcePackagePath $packagePath -OutputPackagePath $spoPackagePath -TargetWebUrl $targetWebUrl -TargetDocumentLibraryPath $targetLibrary -Credentials $cred

# 提交程序包数据以创建新的迁移作业

$job = Invoke-SPOMigrationEncryptUploadSubmit -SourceFilesPath $sourceFiles -SourcePackagePath $spoPackagePath -Credentials $cred -TargetWebUrl $targetWebUrl

本示例演示如何获取作业的返回信息(采用 GUID 格式)。

$job = $jobs[0]

$job.JobId

Guid
----
779c4b3b-ec24-4705-bb58-c38f4329418c

本示例演示如何获取 $job.ReportingQueueURi.AbosoluteUri。

# To obtain the $job.ReportingQueueUri.AbsoluteUri

https://spodm1bn1m013pr.queue.core.windows.net/953pq20161005-f84b9e51038b4139a179f973e95a6d6f?sv=2014-02-14&sig=TgoUcrMk1Pz8VzkswQa7owD1n8TvLmCQFZGzyV7WV8M%3D&st=2016-10-04T07%3A00%3A00Z&se=2016-10-26T07%3A00%3A00Z&sp=rap

本示例演示如何获取加密密钥和返回值示例。

$job.Encryption
EncryptionKey                                       EncryptionMethod

-------------                                             ----------------

{34, 228, 244, 194...}                              AES256CBC

重要: 所有消息在队列中进行了加密。如果要从 ReportingQueue 中读取,必须具有 EncryptionKey。

最佳做法和限制

描述

建议

包大小

10 - 20 GB

使用 –ParallelImport 开关进行文件共享迁移,它会自动将大包拆分为较小的包。

文件大小

2 GB

目标大小

在迁移完成之前,目标站点应保持用户无法访问的状态

SharePoint Online 限制

SharePoint Online 和 OneDrive for Business:软件边界与限制SharePoint Online:软件边界和限制

Azure 限制

资源

默认/限制

TB/存储帐户

500 TB

单个 Blob 容器、表或队列的最大大小

500 TB

每个存储帐户的 Blob 容器、Blob、文件共享、表、队列、条目或消息的最大数量

唯一的限制是 500 TB 的存储帐户容量

单个 Blob 的目标吞吐量

最多 60 MB/秒,或最多 500 个请求/秒

相关主题

使用适用于 SharePoint Online 和 OneDrive 迁移的 Windows PowerShell cmdlet

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×