SharePoint 迁移 API 参考指南
本指南介绍 SharePoint 迁移 API 的用法,该 API 基于清单文件将内容导入 SharePoint。
CSOM 和 REST
迁移 API 支持 SharePoint 客户端对象模型 (CSOM) 和 REST。
将 NuGet 包与 CSOM 配合使用
若要在解决方案中引用 SharePoint 客户端对象模型 (CSOM) ,请使用 NuGet 包。
轻松管理依赖项,并确保解决方案使用最新版本的 CSOM 库和 NuGet 包。
获取具有 ID Microsoft.SharePointOnline.CSOM
的 SharePoint 客户端对象模型库中的 CSOM 包的最新版本。
有关 REST API 的说明,请查看 了解 SharePoint REST 服务 。
CreateMigrationJob 方法
使用参数中指定的 azureContainerSourceUri
导入包创建新的迁移导入作业。
CreateMigrationJob 语法
public Guid CreateMigrationJobEncrypted(
Guid gWebId,
string azureContainerSourceUri,
string azureContainerManifestUri,
string azureQueueReportUri,
EncryptionOption AES256CBCKey
)
POST https://{site_url}/_api/site/CreateMigrationJobEncrypted
{
"options": {
"AES256CBCKey": "000000000000000000000000000000000000000000000000000000="
},
"gWebId": "00000000-0000-0000-0000-000000000000",
"azureContainerSourceUri": "https://tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=rw",
"azureContainerManifestUri": "https://tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=rw"
}
CreateMigrationJob 参数
gWebID
必填。
一个 String 值,该值包含针对包导入的目标 Web 的唯一标识符。 导入包本身指定导入的其他信息和标识符。 可以通过使用 CSOM 调用查询目标 Web,以编程方式查找此标识符。
azureContainerSourceUri
必填。
一个 String 值,该值包含有效 URI(包括 SAS 令牌),用于访问包含块类型的二进制文件的 Azure Blob 存储 容器。
有关在迁移中使用 Azure Blob 存储 容器的说明,请参阅将 Azure Blob 存储 容器和 Azure 队列 与 SharePoint 迁移 API 配合使用。
使用此方法未提供的内容容器时,迁移 API 仅需要 Read
和 List
权限。 确保 SAS 令牌的开始时间是在作业提交时或之前设置的。 此外,在设置过期时间时,请允许一个合理的持续时间来完成导入过程。
迁移 API 不需要 List
使用 ProvisionMigrationContainers
方法预配的容器的权限。
azureContainerManifestUri
必填。
一个 String 值,该值包含用于访问 Azure Blob 存储 容器的有效 URI(包括 SAS 令牌),该容器包含用于描述 XML 文件的清单和其他包的块 Blob。 迁移 API 将日志写入此容器。 此容器不能与用于 的 azureContainerSourceUri
容器相同。
有关在迁移中使用 Azure Blob 存储 容器的说明,请参阅将 Azure Blob 存储 容器和 Azure 队列 与 SharePoint 迁移 API 配合使用。
使用此方法未提供的内容容器时,迁移 API 仅需要 Read
、 List
和 Write
权限。 确保 SAS 令牌的开始时间是在作业提交时或之前设置的。 此外,在设置过期时间时,请允许一个合理的持续时间来完成导入过程。
azureQueueReportUri
可选。
包含有效 URL(包括 SAS 令牌)的 String 值,用于访问用户提供的 Azure 队列以执行迁移作业进度。 如果不需要接收导入状态更新,请使用 null
。
如果此值不是 null
,并且 SAS 令牌包含正确的权限,则迁移 API 会在提供的 URL 处将导入状态更新写入队列。
在多个迁移作业之间共享通知队列。 迁移 API 使用通知队列中唯一的作业 ID 值标识每个作业。
有关在迁移中使用 Azure 队列的说明,请参阅 Azure 。 检查 Azure 队列中的迁移事件 ,了解事件类型。
Add
仅需要 、 Read
和 Update
权限。 如果 SAS 令牌具有其他权限,则迁移作业将无法将事件添加到队列。
CreateMigrationJob 返回值
作业 ID
Guid 值,其中包含作业 ID,迁移作业的唯一标识符。 如果无法创建作业,方法将返回一个 null
值。 使用作业 ID 通过 方法查询迁移作业 GetMigrationJobStatus
的状态。
示例
Guid MigrationJobId = TargetSite.CreateMigrationJob(
TargetWebId,
azureContainerSourceUri,
azureContainerManifestUri,
azureQueueReportUri);
CreateMigrationJobEncrypted 方法
使用加密的 PRIME 包创建新的迁移导入作业。
查看 Azure 中的加密说明,了解使用的Azure Blob 存储容器和 Azure 队列加密。
CreateMigrationJobEncrypted 语法
public Guid CreateMigrationJobEncrypted(
Guid gWebId,
string azureContainerSourceUri,
string azureContainerManifestUri,
string azureQueueReportUri,
EncryptionOption AES256CBCKey
)
POST https://{site_url}/_api/site/CreateMigrationJobEncrypted
{
"options": {
"AES256CBCKey": "000000000000000000000000000000000000000000000000000000="
},
"gWebId": "00000000-0000-0000-0000-000000000000",
"azureContainerSourceUri": "https://tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=rw",
"azureContainerManifestUri": "https://tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000=rw"
}
CreateMigrationJobEncrypted 参数
gWebID
、 azureContainerSourceUri
、 azureContainerManifestUri
和 azureQueueReportUri
参数的要求与 方法中的 CreateMigrationJob
要求相同。
按照以下说明提供 EncryptionOption
参数。
EncryptionOption
必填。
一个 EncryptionOption
对象,包含用于解密输出的 AES256CBCKey。
迁移 API 使用提供的 AES256CBCKey 密钥加密输出。
有关详细信息,请参阅 [EncryptionOption](https://learn.microsoft.com/en-us/dotnet/api/microsoft.sharepoint.client.encryptionoption)
类。
CreateMigrationJobEncrypted 返回值
请参阅方法中的 CreateMigrationJob
返回值。
GetMigrationJobStatus 方法
检索指定迁移作业的处理状态。
迁移 API 从计时器作业队列中删除已完成的迁移作业。 检查通知队列和/或日志输出以获取导入结果。
GetMigrationJobStatus 语法
[ClientNS.ClientCallableMethod]
public SPMigrationJobState GetMigrationJobStatus(Guid MigrationJobId)
GetMigrationJobStatus 参数
ID
必填。
包含迁移作业 ID 的 Guid 值从 CreateMigrationJob
返回。
GetMigrationJobStatus 返回值
一个 SPMigrationJobState
对象,其中包含迁移作业的状态。
GetMigrationJobStatus 示例
SPMigrationJobState CurrentJobState = TargetSite.GetMigrationJobStatus(MigrationJobId);
SPMigrationJobState 枚举
包含表示导入队列中迁移作业状态的成员。
SPMigrationJobState 成员
无
值:0
队列不包含具有作业 ID 的迁移作业。 可能的原因包括:
- 迁移 API 已完成作业并将其从队列中删除。
- 作业 ID 无效。
已排队
值:2
队列包含迁移作业。 迁移 API 未处理作业。
正在处理
值:4
队列包含迁移作业。 迁移 API 正在处理作业。