将文档查看器 SDK 与云存储和协作平台集成
← Back to Blog2 min read

将文档查看器 SDK 与云存储和协作平台集成

集成文档查看器 SDK 与云存储和协作平台
集成文档查看器 SDK 与云存储和协作平台
将文档查看器 SDK 与云存储和协作平台集成,可让您直接从 .NET 应用程序提供无缝、安全且可搜索的文档体验。使用 Doconut——面向 .NET 后端的通用文档查看器,您可以原生渲染 PDF、Office 文件、CAD 图纸和图像,添加基于 OCR 的搜索,启用实时注释,并控制打印,同时将数据保留在您选择的云或本地环境中。本指南面向高级开发人员和软件架构师,展示如何将 Doconut 接入 Azure Blob、Amazon S3 或 Google Cloud Storage,以及如何通过 Microsoft Teams、SharePoint 或自定义基于 React 的工作区等协作门户公开查看器。


为什么云原生文档查看对现代 .NET 应用至关重要

使用单一 .NET Core 实现跨平台一致性

企业正从仅限桌面的文档工具转向运行在 Windows 上的 Web 优先体验。Doconut 的服务器端渲染引擎运行在 .NET 6 及更高版本上,确保无论底层操作系统如何,都能输出像素完美的结果。由于查看器使用流式处理,您可以从任意云存储桶中获取文件,直接传递给 Doconut 查看器组件,并将渲染的页面或缩略图返回给客户端,而无需将文件写入磁盘。

降低延迟和带宽消耗

当文档存放在 Azure Blob Storage 中时,为了查看首页而将整个文件下载到客户端会产生不必要的延迟。Doconut 支持按需生成缩略图,您可以先请求低分辨率的预览,仅在用户滚动时才获取完整页面渲染。这种模式对可能高达数百兆字节的 CAD 图纸(DWG、DXF)尤为有价值。

安全优先的处理

所有繁重的处理都在服务器端完成。通过使用 Doconut 的 服务器端处理 功能,您可以将机密的 PDF、法律合同或医疗记录保存在私有 VNet 或公司防火墙后面。不会调用第三方 SaaS,查看器也不会将原始字节流向浏览器端引擎——仅返回您在后台生成的图像瓦片或 HTML 片段。

将 Doconut 连接到流行的云存储服务

通用集成方法

  1. 获取文档流 – 使用所选云提供商的 SDK(Azure Blob、Amazon S3、Google Cloud Storage)将文件下载到 Stream 对象中。
  2. 将流传递给 Doconut – Doconut 查看器接受流以及可选的渲染选项。这消除了在 Web 服务器上创建临时文件的需求。
  3. 生成查看器令牌 – Doconut 返回一个唯一标识当前会话中打开文档的令牌。该令牌可以作为 JSON 返回给前端,并在后续的页面渲染或注释请求中使用。
  4. 按需渲染页面 – 前端使用令牌和所需的页码调用 Doconut 端点;Doconut 会流式返回图像或 HTML 片段。

由于工作流仅依赖流式操作,切换 Azure 代码为 Amazon S3 或 Google Cloud Storage 只需更改创建流的云 SDK 调用;其余的 Doconut 流程保持不变。

处理多租户存储

在 SaaS 文档管理系统中,每个租户可能拥有独立的存储桶或前缀。因为 Doconut 使用流式方式,您可以在运行时解析正确的存储桶,打开文档,并将令牌限定在当前用户的声明范围内。Doconut 的内部缓存 (IDistributedCache) 可配置为使用 Redis 或 Azure Cache for Redis,确保对同一页面的重复请求命中内存而非重新渲染。

在协作工作流中启用实时注释和 OCR

注释插件:将静态查看器转变为评审中心

Doconut 附带 Annotation Plugin,允许用户高亮文本、添加便签或绘制自由形状。文档打开后,您可以从查看器获取注释管理器,添加或修改注释对象,并将注释状态以 XML 形式持久化。将 XML 与文档记录一起存储,可实现版本化的评审历史;在后续打开时加载该 XML,即可恢复完全相同的可视状态。

基于 OCR 的扫描 PDF 搜索

扫描的合同、收据或医学影像通常以仅图像的 PDF 形式出现。Doconut 的 Search Plugin 在您在查看器配置中启用时,会在服务器端自动运行 OCR。OCR 引擎位于服务器端堆栈内部,提取的文本永不离开受保护的环境。OCR 完成后,您可以调用搜索 API 获取匹配的页码和边界矩形,UI 可以对其进行高亮。由于 OCR 在服务器上运行,您还可以将提取的文本索引到 Azure Cognitive Search、Elasticsearch 或其他搜索服务,以实现对整个仓库的即时全文搜索。

通过共享令牌进行协作

在 Teams 或 SharePoint 集成中,通常会生成一个短期令牌,编码文档 ID、用户权限和时间戳。Doconut 从 OpenDocument 调用返回的令牌字符串可以包装成 JWT 或存入缓存。当其他用户点击共享链接时,使用相同的令牌重新激活查看器,保留所有注释和 OCR 层供所有参与者使用。

使用 Doconut 实现安全的服务器端转换和受控打印

许多企业需要将 Word、Excel 或 CAD 文件转换为 PDF 以便归档,或执行“仅在批准后才能打印”的策略。Doconut 的 Converter Plugin 在不依赖 Microsoft Office 或第三方服务的情况下处理这些场景。您在服务器上调用转换 API,传入源文件路径(或流)以及期望的输出格式。转换完全在后端完成,生成的 PDF 可存入文档库。

PDF 生成后,您可以在查看器 UI 中直接启用 Controlled Printing。Doconut 提供方法为给定的文档令牌设置打印权限。当用户点击打印按钮时,Doconut 检查该标志,若允许则渲染可打印的图像流,否则返回友好的“已禁用打印”提示。此方式消除了使用自定义 JavaScript 阻止浏览器打印对话框的需求。

审计打印活动

由于打印请求经过 Doconut 中间件,您可以在 ASP.NET Core 的日志管道中挂钩,捕获谁在何时打印了什么。将审计条目存入 SQL 表或转发至 SIEM 系统,以满足合规报告需求——这对法律科技或医疗解决方案尤为关键,因每一次文档访问都必须可追溯。

跨平台环境下的扩展性和性能最佳实践

  1. 利用分布式缓存 – Doconut 的内部页面瓦片缓存可以由 Redis、Azure Cache 或任何 IDistributedCache 实现提供支持。在缓存键中加入文档版本哈希,以避免在转换后提供过期的图像。
  2. 使用后台任务进行批量转换 – 在导入大型档案时,可使用 Hangfire 或 Azure Functions 将转换任务入队。Doconut 查看器类兼容 IHostedService 工作器,因为它接受流并返回令牌,无需 HTTP 上下文。
  3. 根据设备调节图像分辨率 – 移动设备适合较低的 ImageResolution(150‑200 DPI),而桌面工作站可请求 300 DPI 以呈现 CAD 细节。可依据 user‑agent 或客户端设置动态调整分辨率。
  4. 启用注释懒加载 – 将注释 XML 存放在独立表中,仅在用户打开注释面板时加载。这可减少初始负载并加快首页渲染。
  5. 监控内存占用 – 渲染高分辨率 CAD 页面会消耗大量内存。生产环境下将 .NET GC 设置为服务器模式 (<gcServer enabled="true"/>) 并设定合理的超时时间,以防止渲染任务失控。
  6. 为静态资源使用 CDN – 查看器的 JavaScript 和 CSS 包是静态资源。将它们从 Azure CDN、CloudFront 或 Cloudflare 提供,可在全球分布的团队中将首次页面加载时间缩短数毫秒。

遵循这些指南,您即可在跨洲支持数千并发用户,同时将首页渲染延迟控制在 200 ms 以下——这是许多企业门户追求的基准。

快速上手 Doconut 免费试用

评估 Doconut 的最快方式是从官方网站下载免费试用版,将 NuGet 包添加到新的 ASP.NET Core 项目中,并按照快速入门指南操作。几分钟内,您即可拥有一个功能完整的查看器,能够从 Azure Blob 拉取文档、启用注释、运行基于 OCR 的搜索,并执行安全的服务器端转换。有关逐步说明,请访问 Doconut 文档,立即开始构建云原生文档体验。

准备好改造您的文档工作流了吗?
立即注册 Doconut 免费试用,亲身感受在任何 .NET 应用中交付安全、可搜索且协作式文档体验的简易性。

#document viewer#.NET#cloud integration#collaboration#OCR#文档查看器#云集成#协作