SharePoint 加载项模型中的文档 ID 提供程序
在新 SharePoint 外接程序模型中设置 SharePoint 文档的唯一标识符的方法与使用完全信任代码不同。 在典型的完全信任代码 (FTC)/场解决方案场景中,将运行 SharePoint 服务器端对象模型代码的列表项事件处理程序用于设置文档的唯一标识符并且通过 SharePoint 解决方案进行部署。
在 SharePoint 外接程序模型场景中,将 SharePoint 客户端对象模型 (CSOM) 和/或 SharePoint REST API 用于设置文档的唯一标识符。
高级别准则
作为经验法则,我们提供以下高级别准则,用于在新 SharePoint 外接程序模型中设置文档的唯一标识符。
- 将 SharePoint 客户端对象模型 (CSOM) 和/或 SharePoint REST API 用于设置文档的唯一标识符。
- 目前,现有的机制不支持相关联的远程处理代码替换现有的文档 ID 提供程序,因此不支持此功能本身通过远程 API 进行修改。
- 但是,如同外接程序的众多服务案例中的做法,正在使用备用路由。
如何设置文档的唯一标识符?
实质上,设置文档的唯一标识符是指预配 SharePoint 列表/文档库中的列值。
SharePoint (CSOM) 和/或 REST API 可用于设置列值,因而其可用于设置文档的唯一标识符。 请参阅以下文章以了解有关此类 API 及如何将其用于设置列值的详细信息。
设置文档的唯一标识符的选项
以下几种选项可以设置 SharePoint 中存储的文档的唯一标识符。
- 使用远程事件接收器
- 使用后台进程
使用远程事件接收器
在此模式下,新文档上传到 SharePoint 库时会启动远程事件接收器。 远程事件接收器调用 CSOM 或 REST API 设置文档的唯一标识符。
- 文档上传到 SharePoint 后会立即执行此模式。
- 只要与远程事件接收器相关联的服务代码及时执行,新文档上传到 SharePoint 后就会迅速设置文档 ID。
- 此模式仅适用于上传到 SharePoint 的新文档而无法设置 SharePoint 中已存储的文档的唯一标识符。
- 批量上传操作将触发对与远程事件接收器相关联的服务的多次调用。 请制定相应的计划以确保批量上传操作不会使服务超载。
- 远程事件接收器无法通知 SharePoint 文档的唯一标识符设置失败与否。
何时适合?
文档上传到 SharePoint 后需要迅速设置文档的唯一标识符且不希望进行批量上传操作时。
入门
事件接收器和列表事件接收器(SharePoint 外接程序方法)介绍了如何实施外接程序模型中的事件接收器并提供了几个示例及文章的链接。
使用后台进程
在此模式中,后台进程将对 SharePoint 的文档进行查看以确定其中是否具有唯一标识符集。 若在文档中没有发现唯一标识符,后台进程则为该文档设置唯一标识符。 后台进程将调用 CSOM 或 REST API 设置文档的唯一标识符。
- 此模式按为其定义的计划执行。
- 此模式在其代码已写入爬网的所有文档上运行。
- 建议使用 SharePoint 搜索服务执行查询,此查询中会使用筛选器来返回没有唯一标识符集的文档列表。
- 此模式查询速度最快且比其他任何查询模式查询效果都好。
- 此模式消除了后台服务中的自定义查询逻辑。
- 此模式需要进行一些搜索配置。
- 若要了解有关搜索配置的详细信息,请参阅搜索配置(SharePoint 外接程序方法)(#搜索配置(sharepoint-外接程序方法))。
- 不建议进行递归查询,也不建议通过 Web 或列表对象循环返回 SharePoint 环境中所有文档的元数据。
- 此模式查询速度最慢且比其他任何查询模式查询效果都差。
- 使用此模式时可能会出现阻止限制。
- 此模式包括后台服务中的自定义查询逻辑。
- 此模式可以通过 Azure Web Job 实施。
何时适合?
- 需要设置文档的唯一标识符而无法使用远程事件接收器时。
- 希望批量上传文档时。
- 需要确保文档上未设置特殊文档 ID 时。
- 事件接收器无法通知 SharePoint 唯一的文档 ID 设置失败与否。
- 需要处理 SharePoint 中已存储的文档时。
开始使用
远程计时器作业(SharePoint 外接程序方法)介绍了如何实施外接程序模型中的远程计时器作业并提供了几个示例及文章的链接。
相关链接
- 事件接收器和列表事件接收器(SharePoint 外接程序方法)
- 搜索配置(SharePoint 外接程序方法)
- 远程计时器作业(SharePoint 外接程序方法)
- 指南文章中 https://aka.ms/OfficeDevPnPGuidance
- MSDN 中的引用位于 https://aka.ms/OfficeDevPnPMSDN
- 视频中的 https://aka.ms/OfficeDevPnPVideos
PnP 示例
适用于
- Office 365 多租户 (MT)
- Office 365 专用 (D)
- SharePoint 2013 本地