haydenbleasel/files-sdk

A unified storage SDK for object and blob backends. One small, honest API. Web-standards I/O.

What it solves

它消除了在使用不同物件與 Blob 儲存後端時必須撰寫特定供應商程式碼的需求。開發者不必為 S3、Google Cloud Storage、Azure 或 Vercel Blob 各自管理獨立的整合,而是可以使用單一、統一的 API 來處理檔案操作。

How it works

SDK 提供一套通用介面,用於上傳、下載、刪除等標準操作。它透過一套適配器系統支援不同的儲存供應商;您只需安裝所需供應商的原生 SDK,files-sdk 便會將其包裝成一致的 API。它使用 Web 標準 I/O(如 Blob 與 ReadableStream),確保供應商特有的型別不會洩漏到應用程式碼中。若有進階需求,亦提供「raw」逃生口以直接存取底層原生客戶端。

Who it’s for

後端與全端開發者,想避免供應商鎖定或需要讓應用程式支援多種儲存後端而不必重寫儲存邏輯。

Highlights

  • Unified API: 在 S3、GCS、Azure、Vercel Blob 與本機檔案系統上提供一致的方法(uploaddownloadexists 等)。
  • AI Tool Integration: 包含即用的封裝,將儲存操作作為工具提供給 Vercel AI SDK、OpenAI Responses/Agents SDK 與 Anthropic Claude Agent SDK。
  • Web-Standard I/O: 支援 BlobFileReadableStream 等標準型別。
  • Tree-shakeable: 各適配器為獨立入口點,確保只打包必要的程式碼。