我使用 Cloudflare R2 + Turso 构建了开源的 “Microsoft Edge Drop” 替代品

发布: (2026年2月23日 GMT+8 04:58)
3 分钟阅读
原文: Dev.to

Source: Dev.to

Cover image for I Built the Open Source “Microsoft Edge Drop” Replacement Using Cloudflare R2 + Turso

概览

我最近构建了 Cliff Drop,一个自托管、跨设备的文本和文件共享应用,灵感来源于 Microsoft Edge Drop。有趣的部分并不是 UI,而是存储架构。

存储架构

结构化数据 → Turso(边缘托管 SQLite)

对于消息、元数据和身份验证,我使用了 Turso(libSQL)

为什么选择 Turso?

  • 边缘托管的 SQLite
  • 低延迟的全局读取
  • 熟悉的 SQL 语法
  • 无繁重的数据库操作
  • 与 Drizzle ORM 完美配合

它提供了 SQLite 的简洁性,同时具备分布式数据库的特性——无需 Postgres 集群或复杂的复制配置。

文件存储 → Cloudflare R2(兼容 S3)

对于文件上传和图片,我使用了 Cloudflare R2

为什么选择 R2?

  • 兼容 S3 的 API
  • 零出口费用
  • 大规模对象存储
  • 与 Node.js 无缝集成
  • 可轻松使用本地回退选项

这使得:

  • 存储大文件上传
  • 生成缩略图
  • 全球分发文件
  • 避免带宽费用惊喜

全部无需供应商锁定。

实时与安全

  • 原生 WebSocket 实现实时同步
  • Argon2id 密码哈希
  • HTTP‑only Cookie
  • CSRF 防护
  • CSP 头部
  • 安全的文件处理

技术栈

  • SvelteKit(adapter‑node)
  • Tailwind CSS
  • Node.js
  • Drizzle ORM
  • Turso
  • Cloudflare R2

为什么这种架构重要

Cliff Drop 展示了一种云原生存储设计:将结构化数据与对象存储分离,利用边缘数据库,并使用兼容 S3 的基础设施。它可以在 Linux(systemd / PM2 / Nginx)上直接投入生产。

现代全栈工程不再只是 React + API,而是为每项职责选择合适的存储层:

  • 数据库 负责数据完整性
  • 对象存储 负责文件
  • 边缘 提升性能
  • Node 提供控制

即使是小型副项目,也可以像真实系统一样进行架构设计。合理拆分存储,考虑延迟、扩展性和成本,让你的项目更上一层楼。

GitHub Repo:

0 浏览
Back to Blog

相关文章

阅读更多 »