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: 各适配器为独立入口点,确保只打包必要的代码。