每天,Dropbox产品都在幕后转换海量内容。在手机上通过Dropbox打开PowerPoint演示文稿,它会被渲染为清晰、便于快速浏览的预览。在Sign中完成协议,它会被扁平化为PDF。把视频上传到视频审阅与审批工具Replay,它会被转码为可以立即流式播放的轻量版本。这些体验分属不同产品,却都由同一底层系统支持。
这个系统就是Riviera。我们的内容处理平台在近十年间持续改进产品中的内容转换。每当文件需要为另一个应用做好准备,Riviera就在后台承担繁重工作,并以巨大规模运行。例如,它将大量大型媒体转换为可流式播放的内容,每天输出的视频时长相当于8年。Riviera最初是生成文件预览的内部服务,后来演进为Search、Replay、Sign、Dash等Dropbox产品团队共同使用的平台。现在,我们正通过API和Model Context Protocol工具,向开发者生态及设计合作伙伴开放这些能力。
随着Dropbox构建Dash等AI驱动产品,对可靠、可复用内容转换的需求不断增长。AI模型在回答文档问题或总结报告之前,内容必须以一致方式提取、转换并准备好。如今许多构建AI应用的开发者都面对同样挑战。无论你构建内容管理系统、自动化文档工作流、为搜索索引文件,还是为AI应用准备文档,现在都可以通过我们的API,使用支撑Dropbox产品的同一基础架构。
本文将介绍Riviera如何从预览服务成长为共享平台,哪些架构决策让这一过程成为可能,以及为什么我们向组织外部的工程师开放这些能力。
起点是一个预览问题
Dropbox用户存储各种文件,需要能在任何设备上快速打开其中任意文件,并看到有用内容。我们称之为预览,即文件在Dropbox各个界面上的可视化呈现。满足这个期待,比听起来困难得多。Dropbox支持超过300种文件格式,每种格式可能产生多种输出:缩略图、完整预览、提取文本、流媒体清单、元数据等。我们必须考虑如何构建系统来提供这些预览。
如果每种文件格式、每种输出都构建独立服务,很快就会无法管理。这样会让许多能力重复实现其他能力的小部分。假设PowerPoint处理与Word处理都需要PDF逻辑,如果它们是独立服务,就要在两个位置维护相似PDF逻辑。这会增加维护难度,并在Dropbox运行环境——构成架构的软件与硬件集合——中散布重复依赖。配置会漂移,软件包版本会不一致,运维负担也会增长。
因此,我们需要一个受管理的平台,在其中构建能被许多不同功能共享的服务。依赖和工具需要集中放在一个地方,由团队积累这些能力的深厚专业知识。设计也必须能够扩展到所有存储文件类型,同时让平台本身可管理。
解决问题的突破出现在我们不再把每个预览视为独立功能的时候。我们转而将每个任务拆成一系列可复用的小型转换。例如,渲染PowerPoint预览并不需要从头到尾构建定制PowerPoint渲染器。Riviera先把演示文稿转换为PDF,再把每个PDF页面转换为可以在任何地方显示的图像。
同样的PDF转图像步骤,也可以复用于PDF文件本身,以及其他需要页面图像的工作流。构建可复用转换,而不是一次性流水线,让我们能够支持新文件类型和新产品,不必每次从头开始。

这个想法塑造了Riviera架构。我们构建一个中央入口,收集请求、编排要完成的工作,并分发给后端工作节点。中央部分校验请求并缓存响应,避免后端节点执行重复或无效工作。每个后端工作节点属于某一种转换类型,因此每种能力都有单一维护与扩展位置。如今Riviera拥有超过100种这样的能力,每秒执行数十万次转换。
把协调与执行分开,让平台容易扩展。支持新文件格式或新转换类型,通常只需添加另一个插件,而非修改Riviera核心基础架构。随着Riviera成长,核心系统保持稳定,能力则持续扩展。
平台逐渐形成
Riviera起初并非打算成为共享平台,而是专门Previews团队运行的内部工具。但其他团队很快发现,他们存在相似的内容转换问题。例如,预览生成的缩略图也适合机器学习团队用来归一化图像,进行特征提取。如果两类使用者都能使用同一个160×160缩略图,Riviera只需生成一次。
Search团队很快采用Riviera,为索引准备文档。Dropbox扩展出Sign、DocSend、Replay等产品后,这些团队也发现可以复用现有转换,而不必构建新基础架构。内部采用范围扩大后,我们向产品团队本身开放插件模型。工程师可以贡献新转换,Riviera团队则维护平台核心架构。插件成为Riviera共享的转换库。
视频审阅产品Dropbox Replay,是这一模式实践中的最佳例子之一。构建视频审阅产品,必须完成视频数据转码与处理这些复杂任务。Riviera能够满足需求,让产品快速成长并迭代能力,而不是从零搭建。
一种模式逐渐出现:产品团队识别需要的转换,Riviera公开已有能力或添加新插件。过去可能需要数月交付的功能,如今数周就能上线;每项新增能力都让平台对下一个采用它的团队更有用。

Dash改变了规模
Dash把AI带到Dropbox,也为Riviera带来一种新需求。AI模型回答文档问题或总结报告之前,文档必须被转换为模型能够理解的内容。要做好这一点,需要提取文本、识别扫描页面、抽取元数据,并将数百种不同文件格式转换为一致的表示。
这些并不是AI问题,而是内容转换问题,恰好就是Riviera设计要解决的事情。Replay从Riviera媒体能力中获益,Dash团队同样利用现有功能加速内容处理流水线。
Riviera已经支持数百种文件类型与转换,因此Dash团队无需从零构建新文档处理系统。Dash从Dropbox、Google Drive、Slack及其他连接来源摄取内容时,Riviera为索引与AI准备这些文件。之后,有人提出文档问题时,模型把转换后的内容作为相关上下文生成回答。
这项投资的收益远不止Dash。文本提取改进,让AI回答和搜索结果都更加准确。更快的缓存减少了生成预览、回答问题和处理文档所需工作。新文件类型只需添加一次支持,就能在所有使用Riviera的地方获得该能力。
这就是共享基础架构的优势。Dropbox无需让每个产品独立解决相同的内容转换问题,而是在Riviera中解决一次,所有上层产品都能获益。
可复用平台如何创造持久价值
Riviera最初只有一个目标:让Dropbox中存储的任意文件都可以预览。解决这个问题,意味着构建可复用内容转换,而不是产品专用流水线。随着Dropbox更多团队采用平台,Riviera远远超出预览范围,支持数百种文件格式与愈发多样的工作负载,为Search、Replay、Sign、Dash等产品功能提供支持。
这种成长塑造了平台及其背后的理念。功能往往一次性交付价值;平台则在每个新团队基于它构建时变得更有价值。每个新产品带来新文件类型、工作负载和要求。每项改进都增强Riviera,所有上层团队都从这些投入中获益。
平台也被设计为扩展时不会更难维护。插件架构让工程师能够增加新文件格式和转换支持,无需修改核心系统;对于哪些职责属于Riviera的清晰边界,则让它始终专注于大规模可靠内容转换。
今天,我们通过公开API和MCP工具提供越来越多的Riviera能力,把这种复用扩展到Dropbox之外。这个最初的内部预览服务,如今也成为开发者可以依托的基础架构。过去十年技术发生巨大变化,但Riviera背后的想法没有改变:围绕共同问题构建可复用系统,它们就会在最初用例消失后持续创造价值。要了解现有能力,请访问开发者门户。 (开发者链接)
致谢:特别感谢Riviera团队,以及一路贡献、帮助Riviera成长到今天的所有人。
如果构建创新产品、体验和基础架构令你兴奋,欢迎与我们共同创造未来!访问jobs.dropbox.com查看开放职位。 (jobs.dropbox.com)
文中第一人称经历、平台规模与结果均为 Dropbox 原作者的记述。










暂无评论内容