@Dropbox: Riviera 最初的目标只有一个:让 Dropbox 中存储的任何文件都能预览。解决这个问题意味着……
摘要
Dropbox 的 Riviera 内容处理平台最初为文件预览而构建,现已演变为支持多个产品的共享基础设施,并且正在通过 API 和 MCP 工具向开发者开放。
查看缓存全文
缓存时间: 2026/07/22 20:27
Riviera 最初的目標只有一個:讓 Dropbox 中儲存的任何檔案都能預覽。要解決這個問題,就必須建立可重複使用的內容轉換機制,而不是針對特定產品打造管線。
通用內容處理平台 Riviera 如何因應 AI 與未來需求而演進
來源:https://dropbox.tech/infrastructure/how-our-universal-content-processing-platform-riviera-evolved-for-ai-and-beyond?utm_source=x&utm_medium=social&utm_campaign=tech&utm_content=riviera
每天,Dropbox 產品都在幕後處理大量內容。在 Dropbox 中於手機上開啟一份 PowerPoint 簡報時,它會被轉換成清晰的預覽圖,讓你快速瀏覽。在 Sign 中敲定協議時,它會扁平化為一份 PDF。將影片上傳到我們的影片審閱與核准工具 Replay 時,它會轉碼成輕量版本,讓你即時串流。這些體驗橫跨不同產品,但背後都由同一個基礎系統驅動。
這個系統就是 Riviera,我們的內容處理平台,大約十年來持續不斷地改善產品中的內容轉換功能。每當某個檔案需要為其他應用程式做好準備時,Riviera 就會在幕後執行這些繁重工作,並以超大規模運作。(例如,Riviera 每天將大量巨型媒體檔案轉換成可串流內容,產出量相當於 8 年的影片長度。)最初,Riviera 只是一個用於產生檔案預覽的內部服務,但隨著時間演進,它已成為 Dropbox 內各產品團隊(如 Search、Replay、Sign、Dash)共同使用的共享平台。我們現在正透過 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 最初並非打算成為一個共享平台——它是由專門的預覽團隊運行的內部工具——但沒過多久,其他團隊就發現他們也有類似的內容轉換問題。例如,為預覽所建立的縮圖,對於需要標準化圖像以進行特徵萃取的機器學習團隊來說也同樣有用。如果兩個使用者都能使用相同的 160×160 縮圖,那麼 Riviera 只需產生一次即可。
搜尋團隊很快採用了 Riviera 來準備用於索引的文件。隨著 Dropbox 透過 Sign、DocSend 和 Replay 等產品擴張,這些團隊也發現他們可以重複使用現有的轉換機制,而不是建置新的基礎架構。隨著內部採用率在我們組織內成長,我們將外掛程式模型開放給產品團隊本身。工程師可以貢獻新的轉換功能,而 Riviera 團隊則維護平台的核心架構。外掛程式成為了 Riviera 的共享轉換功能庫。
我們的影片審閱產品 Dropbox Replay 成為這種模式的最佳實例之一。要建置一個影片審閱產品,你必須完成轉碼和操作影片資料這項複雜任務。Riviera 能夠滿足這項需求,讓產品能夠快速成長並迭代其功能,而不是從零開始建置。
一個模式出現了。產品團隊識別出他們需要的轉換功能。Riviera 提供現有能力,或新增一個外掛程式。原本可能需要數個月才能推出的功能,現在幾週內就能上線,而每次新增都讓平台對下一個採用它的團隊來說更具能力。
Dash 改變了規模
當 Dash 將 AI 帶入 Dropbox 時,它為 Riviera 創造了新的需求。在 AI 模型能夠回答文件問題或摘要報告之前,文件必須先被轉換成模型能夠理解的格式。要做到這點,需要萃取文字、辨識掃描頁面、提取中繼資料,並將數百種不同的檔案格式轉換成一致的表示形式。
這些不是 AI 問題。它們是內容轉換問題,而這正是 Riviera 被建置來解決的問題。正如 Replay 在 Riviera 的媒體功能中找到價值一樣,Dash 團隊也得以透過使用現有的 Riviera 功能來加速其內容處理管線。
由於 Riviera 已經支援數百種檔案類型和轉換,Dash 團隊無需從頭建立一個新的文件處理系統。當 Dash 從 Dropbox、Google Drive、Slack 和其他連接的來源攝取內容時,Riviera 會為這些檔案準備好索引和 AI 處理。之後,當有人詢問有關文件的問題時,這些轉換過的內容就會被用作相關背景資訊,供模型產生回應。
這項投資的報酬遠遠超出了 Dash。文字萃取的改進讓 AI 回應和搜尋結果都更加準確。更快的快取減少了產生預覽、回答問題和處理文件所需的工作。對新檔案類型的支援只需新增一次,就可以在 Riviera 被使用的任何地方生效。
這就是共享基礎架構的優勢。與其讓每個產品獨立解決相同的內容轉換問題,Dropbox 在 Riviera 中一次性解決這些問題,而建立在它之上的每個產品都能受益。
可重複使用的平台如何創造持久價值
Riviera 最初的目標只有一個:讓 Dropbox 中儲存的任何檔案都能預覽。要解決這個問題,就必須建立可重複使用的內容轉換機制,而不是針對特定產品的管線。隨著 Dropbox 內更多團隊採用這個平台,Riviera 遠遠超出了預覽的範疇,支援數百種檔案格式和日益多樣化的工作負載,為 Search、Replay、Sign、Dash 等更多產品的功能提供動力。
這種成長塑造了平台本身及其背後的理念。與功能(一次性提供價值)不同,平台在每個其他團隊基於它進行建置時,都會變得更有價值。每個新產品都帶來了新的檔案類型、工作負載和需求。每一次改進都讓 Riviera 的能力更強,而建立在它之上的每個團隊都能從這些投資中受益。
該平台也設計成能夠擴展,同時不會變得更難維護。此外掛程式架構允許工程師在不變更核心系統的情況下,新增對新檔案格式和轉換的支援,而關於什麼屬於 Riviera 的明確界定,則使其專注於以大規模可靠性轉換內容。
如今,我們正將這種可重複使用的模式擴展到 Dropbox 之外,透過我們的公開 API 和 MCP 工具提供一套不斷成長的 Riviera 功能。這個最初是內部預覽服務的平台,現在已成為開發者也可以在其上建置的基礎架構。儘管過去十年來技術已發生巨大變化,但 Riviera 背後的理念並未改變。圍繞常見問題建置可重複使用的系統,它們將在最初的使用案例消失後很長一段時間內持續創造價值。要了解可用的功能,請造訪我們的開發者入口網站 (https://www.dropbox.com/developers/documentation/http/documentation#riviera)。
致謝:特別感謝 Riviera 團隊,以及一路以來貢獻並幫助 Riviera 達到今日成就的每一個人。
如果你對打造創新的產品、體驗和基礎架構感到振奮,歡迎加入我們,一起打造未來!請造訪**jobs.dropbox.com (https://www.dropbox.jobs/en/) 查看我們的開放職位。
相似文章
@Dropbox:通过Claude协作的Dropbox插件,不仅能查找文件。 - 整理文件夹 - 管理文件请求 - 生成…
适用于Claude的Dropbox插件允许用户在Claude中直接搜索、整理、保存和分享Dropbox文件,同时尊重现有权限设置。
@Dropbox: 了解 Dropbox Protect 如何让分享更安全,确保只有正确的人和工具才能访问团队的内容……
Dropbox 宣布推出 Protect 功能,以增强安全分享,确保只有授权的人员和工具才能访问团队内容。
@Dropbox:安全评审只有在其产生的要求在整个开发过程中保持可见时,才能创造价值……
Dropbox 描述了如何利用 Model Context Protocol、基础 LLM 以及他们自己的 Dash AI 构建了一个系统,该系统能够在代码评审期间自动检索威胁模型,并验证安全要求是否得到满足,从而弥合了设计到代码之间的安全差距。
Cloudflare Drop
Cloudflare 推出了一款名为 'Drop' 的新产品或功能,很可能是一项文件共享或数据传输服务。
@Dropbox:认识那些能搜索、推理并筛选你所有内容,基于团队共享上下文提供答案的AI智能体……
Dropbox的Working Smarter播客节目讨论了AI智能体如何搜索、推理并筛选内容,以提供基于团队上下文的答案,由机器学习工程师Jongmin Baek和Marta Mendez主讲。