Typora + PicGo + Aliyun OSS + CSDN
1、参考资料
- https://www.jianshu.com/p/4cd14d4ceb1d
2、Aliyun OSS
2.1、创建 Bucket
- 进入阿里云 OSS(对象存储)页面,选择创建 Bucket ,用于存储博客中使用的图片
- 设置参数设置 bucket name :heygo
- 设置区域为附近区域,我人在上海,所以选择华东2(上海)
- 选择标准存储(数据常被访问)
- 读写权限设置为公共读,不然别人怎么访问呢?
- 剩下服务的都不开通
2.2、删除 Bucket
- 点击 bucket name,选择基础设置
- 往最底下滑,选择【删除 Bucket】即可
2.3、创建子用户 AccessKey
- 一般我们不使用主账户(登录账户)来调用 API 接口,因为主账户的权限太大,一旦 key secret 泄露,就玩完。。。
- 一般创建子账户来调用 OSS API 接口,点击用户头像,选择【AccessKey 管理】
- 选择【开始使用子用户 AccessKey】
- 设计登录名称和显示名称,选择【编程访问】(自己编写的程序调用或 PicGo 等第三方程序调用)
- Key Secret 貌似仅此一次机会可以查看,赶紧保存下来AccessKey ID :相当于账户(编程访问)
- SECRET :相当于账户密码(编程访问)
2.4、子用户AccessKey授权
- 选择刚才创建的用户,点击添加权限,给子用户添加权限
- 添加 OSS 服务:AliyunOSSFullAccess ,FullAccess 表示可读可写,这样我们就能拿着刚才创建的 Heygogo 账户,通过编程接口操作阿里云 OSS 啦~
3、Typora 配置 PicGo
3.1、配置 PicGo 路径
- 如果 PicGo 选择默认安装,那么 PicGo 路径不用修改
3.2、测试 PicGo 配置
- 成功上传
4、Typora 上传图片
4.1、PicGo设置上传路径
- 强迫症:我要让 Markdown 笔记的文件目录和阿里云 OSS 中的文件目录一致
4.2、Typora上传图片
- 点击【上传所有本地图片】会将当前 Markdown 笔记中的本地图片上传至 OSS 服务器上
4.3、上传失败
- 打开 PicGo 日志文件瞅一瞅
- PicGo 将 + 号替换成了空格,那么我们就将就一下吧
heygo/Software/Typora/Typora PicGo CSDN.assets/
4.4、解决问题
- 那就将就下呗,将图片存储路径改个名呗,路径名统一改为:
Software/Typora/Typora_PicGo_CSDN.assets/
- PicGo 路径设置
- 阿里云 OSS 路径设置
- 上传成功
4.5、粘贴即上传
- 勾选如下选项时,当在 typora 中粘贴图片时,PicGo 将直接上传图片至 OSS 服务器,我并不建议这样做,原因见后
4.6、重复上传
- 问题描述:如果一张图片已经存在于 OSS ,重复上传会发生什么?
- 经测试,如果重复上传,将覆盖之前 OSS 中的图片,所以图片的 URL 并不会改变,所以不必担心重复上传的问题(就是耗流量。。。)
4.7、PicGo Bug
-
问题描述:上传所有本地图片至 OSS 后,图片顺序都乱了
-
我改了好久的图片链接。。。我被搞得没脾气了。。。我还是自己写程序上传 OSS 吧。。。
5、CSDN导入笔记
5.1、导入 MD 文件
- 选择使用 Markdown 编辑器
- 导入 MD 文件(或者直接复制粘贴)
- 导入后的效果
5.2、为何要用 OSS
- 因为 Markdown 语法中,插入图片并不是真正插入了一张图片,而是插入了一张图片的链接
- 对于本地图片链接,我们无法将其直接导入到 CSDN 博客中
- 我们需要将 MD 文件中的图片链接改为 URL 链接的形式,这样就可以直接往博客上 Copy
5.3、个人建议
-
图片保留两份:
一份本地图片,以相对路径的形式引用(备份、本地编辑使用)
- 一份云图片,本地编辑完成之后,就可以将图片上传至阿里云 OSS 啦~
Why ?因为 OSS 上的图片一旦误删,你的笔记里面的图片就凉了,但如果本地还有同名的图片(以相对路径的形式存储),就还有救!我写了个 Java 脚本来挽救这种情况~
PS : 之前的笔记名称为 Typora + PicGo + CSDN ,强迫症患者(我)表示看着不舒服,改成了 Typora + PicGo + Aliyun OSS + CSDN ,所以本文中的本地图片目录并不是 Typora + PicGo + Aliyun OSS + CSDN.asset,而是 Typora + PicGo + CSDN.asset