把 Notion 里几十篇笔记导出成 Markdown 后,我被图片链接结结实实上了一课

起因很简单:我在 Notion 里攒了两年的技术笔记,最近想把它们"赎"回自己手里——导出成 Markdown 存本地,再挑一部分发到博客上。点了导出、下载 zip、解压,文字整整齐齐,我当时还挺得意,觉得脱离平台也就几分钟的事。结果图片用了两种我完全没料到的方式翻车,还特别有迷惑性。把这个周末的折腾记下来,给同样要导出 Notion 的朋友提个醒。

第一天:以为很顺利,其实只对了一半

解压后每个 .md 旁边都有个 image 文件夹,大部分笔记打开图都在。我随手挑了两篇,只把 .md 文件传到博客测试——博客上图片全裂。

我一开始以为是博客的问题,折腾了一圈才明白:我只传了文字没传图。这些图在正文里写的是 image/xxx.png 这种相对路径,它能不能显示,全看 .md 和 image 文件夹是不是还挨在一起。我把 md 单独拎走,等于把图留在了原地,不裂才怪。

于是我老老实实地想:要发博客,总不能每篇都拖一个 image 文件夹、还得保证目录结构一模一样吧?光想想就头疼。

一周后:更诡异的事发生了

真正让我懵的是第二批。

那些一直存在本地、我没动过的笔记,过了一周多,图片居然开始一张张地裂,而且与日俱增。文件我没删没挪,它怎么自己就坏了?

我右键复制了一张裂图的地址,这才发现问题:它根本不是本地路径,而是一长串 https://s3.us-west-2.amazonaws.com/...?X-Amz-...&X-Amz-Signature=... 的远程链接,后面拖着一串签名和过期参数。查了一下才知道,这是对象存储的预签名临时链接,Notion 并没有把这些图打包给我,而是让正文继续引用它服务器上的图,链接自带保质期,过期就返回 403。

到这儿我才反应过来:Notion 导出的图是两批——一批下载到了本地 image 文件夹(走相对路径),一批压根没下载、只给了会过期的临时链接。我第一天看到的"大部分正常",其实混着这两种,只是临时链接当时还没到期而已。

先把两批图分清楚,再动手

搞清楚原理后,我没有急着传图,而是先做了个分类,免得白干:

  • 解压先看 image 文件夹里到底有多少图;
  • 用正则 !\[.*?\]\(([^)]+)\) 把所有图片链接抽出来,image/ 开头的归一堆,https:// 开头、带 X-Amz-Signature 的归另一堆;
  • 对临时链接用 curl -I 探一下,200 就是还没过期、能救,403 就是已经废了。这批图必须趁链接没过期赶紧处理,拖一天少一批。

我的迁移过程(踩了几个小坑)

第一步永远是备份原始 zip,之后都在副本上折腾。

本地那批图相对好办:在图床网页端把 image 文件夹里的图多选、拖拽,一次传一大批,直接拿到 Markdown 链接,不用一张张点。

远程签名这批是关键:我没去手动一张张右键保存,而是把那些长 URL 整理出来,用按 URL 批量上传,让服务端自己逐条去抓取转存,最后吐给我一张"旧链接到新链接"的对照表。这样哪怕链接明天就过期,只要今天抓回来了,图就留住了。

传的时候我特意让图按多级目录加随机路径存放——笔记截图重名率太高了,动不动就十个 image.png、一堆"截屏 2024-…",扔一个目录里必然互相覆盖。拿到映射表后,我用脚本按完整旧链接逐条精确替换回 .md,替换一条核对一条。中间还踩了两个小坑:文件名里的空格在链接里是 %20,中文文件名涉及编码,直接字符串替换很容易漏,得按完整 URL 来。

这一整套我是放在图床小镇上做的,原因很实在:多选拖拽上传解决本地那批,按 URL 批量抓取转存正好解决会过期的签名那批,再加上随机路径和同名覆盖,我不用自己去搭对象存储。当然你要是喜欢自己掌控,自建对象存储套个 CDN 也是一样的路子,看个人精力,不必照搬。

最后我是这样确认没问题的

替换完没急着收工,我用无痕窗口把新老笔记各开了几篇,确认图都在;再回到文件里全局搜了两遍:X-Amz 一条不剩(临时链接清干净了),](image/ 也一条不剩(相对路径清干净了)。原始 zip 和那张映射表我都留着,万一哪篇替换错了还能回滚。

折腾完最大的感受是:不管是 Notion 导出、还是之前把博客从 Hexo 搬到 Hugo、给 Obsidian 配图片不落地,根子上是同一件事——别让图片和某个软件、某个临时链接绑死。把图片统一放到一个稳定的地方、正文里只存一个固定 URL,以后换什么工具、换什么电脑,文档里的图都不用再操心。这几篇是我之前的相关记录,可以一起看:从 Hexo 折腾到 Hugo 又换了台电脑,我把博客图片这摊事理顺了、用 Obsidian 记了两年笔记,我终于让图片不再堆进同步盘。

官网:https://imgbed.cn

posted @ 2026-10-10 02:34  234123412341234  阅读(10)  评论(0)    收藏  举报