使用 SharePoint 异步元数据读取 (AMR) API 时,请使用本文档作为指南。
AMR API 将 SharePoint 元数据聚合到清单包中。 使用包进行增量迁移、结构创建、迁移后验证或权限管理。
CSOM 和 REST
AMR API 支持 SharePoint 客户端对象模型 (CSOM) 和 REST。
将 NuGet 包与 CSOM 配合使用
若要在解决方案中引用 SharePoint 客户端对象模型 (CSOM) ,请使用 NuGet 包。
轻松管理依赖项,并确保解决方案使用最新版本的 CSOM 库和 NuGet 包。
获取具有 ID Microsoft.SharePointOnline.CSOM
的 SharePoint 客户端对象模型库中的 CSOM 包的最新版本。
有关 REST API 的说明,请查看 了解 SharePoint REST 服务 。
CreateSPAsyncReadJob 方法
创建 AMR 作业,将指定 SharePoint URL 及其子级的所有元数据读取到指定的清单容器中。
CreateSPAsyncReadJob 语法
public SPAsyncReadJobInfo CreateSPAsyncReadJob(String url,
SPAsyncReadOptions readOptions,
EncryptionOption encryptionOption,
string azureContainerManifestUri,
string azureQueueReportUri)
CreateSPAsyncReadJob 参数
url
必需项。
一个 String 值,该值包含要读取的 SharePoint 列表、文件/文件夹或文档库的路径的完整路径 URL。 AMR API 返回文件、文件夹和根对象的所有元数据, 包括子文件夹和任何子内容。
示例
此示例 url
返回共享文档及其子级的所有元数据:
https://www.contoso.com/Shared%20Document
readOptions
必填。
一个 SPAsyncReadOptions
结构,其 readOption
值指定要读取的元数据类型。
IncludeVersions
可选。
一个 Bool 值,指示 AMR API 是否读取多个版本的文件和列表项。
默认值为 false
。 当不存在或设置为 false
时,AMR API 仅读取最新版本的项。
IncludeSecurity
可选。
一个 Bool 值,指示 AMR API 是否读取与网站相关的用户和组信息。
默认值为 false
。
AMR API 将用户和组读取为作者或修饰符,作为对象的元数据的一部分。
如果设置为 true
,则 AMR API 读取网站集中的所有用户。 读取同一网站集下的多个文档库时,同一用户和组可能会多次出现在读取包中。
IncludeDirectDescendantsOnly
可选。
一个 Bool 值,指示 AMR API 是否仅读取直接后代的元数据。
默认值为 false
。
如果设置为 true
,则 AMR API 仅读取直接后代的元数据。
在从包含大量项的文档库中读取元数据时,可结合使用此功能readOption
IncludeSecurity
readOption
来提高性能,如最佳做法中所述,以避免性能降低。
IncludeExtendedMetadata
可选。
默认值为 false
。
当设置为 false
时,AMR API 读取基本元数据:
- 列表
- Folder
- 文件
- 列表项
- 角色
- 角色分配
当设置为 true
时,AMR API 读取所有可用的元数据:
对于文件:
- Web 部件
- Web 部件个性化
- 链接
- 版本事件
- 事件接收器
- 附件元数据
对于列表:
- 自定义操作
- 列出快捷方式
对于列表项:
- Comments
- 文档集链接
- 活动
- 列表项快捷方式
包含扩展元数据会显著减慢读取速度。 对于文件共享迁移,请保留默认值 false
。
true
对于复杂的迁移项目,仅在必要时将 设置为 。
IncludePermission
可选。
一个 Bool 值,指示是否需要权限读取。 默认值为 false
。
当设置为 true
时,AMR API 读取文件中标记中RoleAssignments
Manifest.xml
的权限元数据。 该文件包括每个读取 SharePoint 对象的所有可分辨权限元数据以及属性 ScopeId
。
StartChangeToken
可选。
包含 changeToken 项的 Integer 值。
默认情况下,如果未 StartChangeToken
提供 , CreateSPAsyncReadJob
方法会根据参数返回所有可用的项。 每次都会返回一个 CurrentChangeToken
值。
若要仅读取自上次读取以来更改的项,请在后续调用中将 CreateSPAsyncReadJob
设置为 StartChangeToken
。 使用 CurrentChangeToken
上次调用返回的值 StartChangeToken
。
如果 AMR API 收到无效 StartChangeToken
值,则返回错误并停止读取。
将此功能用于大量项目时要小心。 读取作业可以延长运行持续时间。 AMR API 取消运行超过 10 分钟的作业,以保护 SharePoint 基础结构。
encryptionOption
可选。
一个 EncryptionOption
对象,包含用于解密输出的 AES-256-CBC 密钥。
默认情况下,AMR API 不加密输出和事件队列。 如果使用 AES-256-CBC 密钥进行设置,则 AMR API 使用提供的密钥加密输出。
有关详细信息,请参阅 EncryptionOption
类。
azureContainerManifestUri
必填。
字符串值,它是包含输出清单包的 Azure Blob 存储容器的目标 URL。
有关在迁移中使用 Azure Blob 存储容器的说明,请参阅 Azure 。
azureQueueReportUri
必填。
一个 String 值,它是用于接收读取状态消息的 Azure 队列的 URL。
如有必要,请在不同的作业之间共享 azureQueueReportUri
。 AMR API 返回 JobID
以标识已创建的单个作业。
有关在迁移中使用 Azure 队列的说明,请参阅 Azure 。 检查 Azure 队列中的迁移事件 ,了解事件类型。
CreateSPAsyncReadJob 返回值
作业 ID
Guid 值,其中包含作业 ID,迁移作业的唯一标识符。 如果无法创建作业,方法将返回一个 null
值。
AMR API 在估计每个 url
的项计数时生成事件JobEnd
。 有关详细信息 ,请查看事件 。
AzureContainerManifest
一个 Uri 值,该值包含用于访问 Azure Blob 存储容器的 URL,其中包含读取的元数据。
JobQueueUri
一个 Uri 值,该值包含用于读取状态的 Azure 队列的 URL。
EncryptionKey
一个字节数组值,其中包含用于解密 Azure 队列中的清单文件和消息的 AES-256-CBC 密钥。
CreateSPAsyncReadJobWithMultiUrl 方法
创建 AMR 作业,将指定的所有 SharePoint URL 及其子级的所有元数据读取到指定的清单容器中。
CreateSPAsyncReadJobWithMultiUrl 语法
public SPAsyncReadJobInfo CreateSPAsyncReadJobWithMultiUrl(
String[] urls,
SPAsyncReadOptions readOptions,
EncryptionOption encryptionOption,
String azureContainerManifestUri,
String azureQueueReportUri)
CreateSPAsyncReadJobWithMultiUrl 参数
有关 、、 encryptionOption
和 azureQueueReportUri
的详细信息readOptions
,azureContainerManifestUri
请参阅 CreateSPAsyncReadJob
方法。
urls
必填。
一个 Uri数组,其中包含要读取的 SharePoint 列表、文件/文件夹或文档库的根路径的完整路径 URL。 AMR API 返回文件、文件夹和根对象的所有元数据, 包括子文件夹和任何子内容。
根据需要指定多个 URL。 使用多个 URL 的严重调用可能会提高性能。 有关详细信息 ,请参阅性能 。
错误
-2146232832
changeToken 是指当前更改日志开始之前的一段时间。
更改日志限制为紧接当前日期之前的 60 天。 当指定的 changeToken
引用超过 60 天时段的时间时,AMR API 将返回此错误代码。
-2147213196
操作已取消。
AMR API 收到来自客户端的取消请求,并取消了读取操作。