图片粘贴要上传对象存储换永久URL

**笔记正文只能存「图片地址」。粘贴图片若不真正上传到云端,markdown 里留下的会是 `blob:` 或超长 `data:`,都不适合长期保存:`blob:` 只在当前浏览器会话有效,刷新/换设备即失效;`data:` 把整张图塞进正文,数据库膨胀、列表/同步/编辑器变慢。正解是上传对象存储(如 Cloudflare R2,类 S3),正文只存永久 URL。**

相关

  • 保存失败要落本地草稿并自动重试 —— 图片还没传上云时,正文靠本地草稿兜底
  • 图片加载失败要可重试并升级到HTTPS —— 上传之后的下半段:加载失败与降级
  • Agent读语义文件App读结构化存储 —— 同为「正文只存引用,资源另存」的分工

标准流程

  1. 用户粘贴图片
  2. 编辑器拦截剪贴板里的图片文件
  3. 前端上传到后端接口(如 /api/uploads)
  4. 后端存到对象存储
  5. 后端返回公开 URL
  6. 编辑器把图片节点替换为 ![image](https://.../xxx.png)
  7. 正文保存这个永久 URL

难点