图片粘贴要上传对象存储换永久URL
更新于 2026-07-05
**笔记正文只能存「图片地址」。粘贴图片若不真正上传到云端,markdown 里留下的会是 `blob:` 或超长 `data:`,都不适合长期保存:`blob:` 只在当前浏览器会话有效,刷新/换设备即失效;`data:` 把整张图塞进正文,数据库膨胀、列表/同步/编辑器变慢。正解是上传对象存储(如 Cloudflare R2,类 S3),正文只存永久 URL。**相关
- 保存失败要落本地草稿并自动重试 —— 图片还没传上云时,正文靠本地草稿兜底
- 图片加载失败要可重试并升级到HTTPS —— 上传之后的下半段:加载失败与降级
- Agent读语义文件App读结构化存储 —— 同为「正文只存引用,资源另存」的分工
标准流程
- 用户粘贴图片
- 编辑器拦截剪贴板里的图片文件
- 前端上传到后端接口(如
/api/uploads)
- 后端存到对象存储
- 后端返回公开 URL
- 编辑器把图片节点替换为

- 正文保存这个永久 URL
难点
- 接 Milkdown/Crepe 的图片上传插件或 paste handler
- 后端上传接口接对象存储
- 上传失败要保留本地预览并能重试(见 保存失败要落本地草稿并自动重试)