markdown编辑器中关于图片删除是如何处理的?

如题
比如我写文章的时候插入了两张图片A和B
编辑的时候,删除了图片B
后端如何知道删除的图片?从而将图片数据从数据库删除和图片文件从ftp删除?
通过前端提交的文本中图片的连接,和数据库的对比获取?


回答:

如果是像思否这种在线平台,确实是可以:

  1. 在删除图片的时候向后台发送请求同步删除存图;
  2. 在服务器空闲时间段内,扫描比对所有文章/草稿,删除没有引用的图片。

但是对 Typora 这种本地用的编辑器,是不可能采用上述方法删除图片的。
原因很简单——markdown 文件可以复制,编辑器永远无法得知目前的文件是不是唯一副本,图片的链接是不是唯一引用,所以也就无从判断是否应该把删除动作同步到后端。

我能想到的缓解方案有二:

  1. 定期冷归档,通过日志记录文件被访问的时间,长期无人访问的文件换用低成本的冷存储方案存储,下次有访问的时候多花点时间重新激活;
  2. 线上/云上文件才使用图床,因为这部分文件是完全可以追踪的,线下文件不使用图床,图片存为 Base64 ,不过用户直接写md的时候,看到长长的 Base64 会比较糟心。


回答:

具体得看你的编辑器怎么处理的了(大概率是不会被删除掉的)

markdown编辑器本质上就是一个文本编辑器+渲染markdown的文本编辑器。图片在markdown编辑器里面就是一个带有 URL 字符串。在编辑器上插入图片的时候,图片可能会先被上传到某个图床上,拿到图片URL后,markdown编辑器会把URL插入到文本中,编辑器删除掉的图片,实际上就是删除文本,图片的URL实际上还在的。

以上是 markdown编辑器中关于图片删除是如何处理的? 的全部内容, 来源链接: utcz.com/p/935015.html

回到顶部