2020年3月13日更新:
经评论区作者大佬@Molunerfinn提醒, 得知最新的PicGo-Core已经自带支持smms-v2了, 非Windows用户不用看分隔线下面的内容了.
==========
运行在Windows上存在的问题总结如下
由于原版PicGo-Core没有提供Windows独立运行的可执行文件, 所以Typora官方是重新打包了一个旧的smms-v1版本, 需要安装一个插件才能使用, 但是这个插件有一个坑, 引用@Molunerfinn的评论就是:
"因为你用的是 picgo set plugin 来设置的。标准的uploader配置是通过 picgo set uploader 来配置的... 这个是smms-user的作者没有注意的一个问题,会导致困扰。"
==========
最近突然发现Typora更新了, 新增了原生对 PicGo-Core 的调用, 可以自动上传markdown内的图片, 于是赶紧尝鲜一波. 使用过程中遇到了一点坑, 但还是摸索着解决了.
1. 安装PicGo-Core
因为Typora已经原生支持PicGo-Core, 所以只需要在软件内下载一下就可以了(PS: 下面这张图就是用的自动上传, 很方便)
首先点击上面红色1的位置, 选择PicGo-Core, 再点3(不要问我2去哪儿了....就当他不存在), 并等待下载完成.
2. 安装smms v2 API插件
这里是个大坑.
因为PicGo-Core默认的smms使用的是v1的api, 而目前smms已经停用了该版本API, 所以导致PicGo-Core在默认配置下, smms图床完全不可用
翻了一下PicGo-Core的Github发现作者目前还没有把内置的smms api升级到v2, 但是有其他开发者通过第三方插件的方式解决了这个问题, 所以我们需要安装这个v2版本的smms-user插件.
直接点击红色5的位置, 根据文本内容找到PicGo-Core的程序目录
注意, 因为默认的smms api已经不可用, 这里肯定会上传失败, 不用管
找到目录后我们在picgo的目录下启动命令行, 执行如下命令, 并等待安装成功
.\picgo.exe install smms-user
3. 配置PicGo-Core
安装完成之后点击红色4的位置(红标顺序不代表点击顺序), 打开PicGo-Core的配置文件, 按照下面的格式无脑全选替换就行
{
"picBed": {
"current": "smms-user",
"uploader": "smms-user",
"smms-user": {
"Authorization": "这里替换成你自己的"
},
"transformer": "path"
},
"picgoPlugins": {
"picgo-plugin-smms-user": true
}
}
没有Authorization的自己去这里申请一个: https://sm.ms/home/apitoken
申请前需要注册一个账号, 这个没啥难度, 就不细说了.
4. 体验效果
保存配置之后再点红标5的位置应该就可以正常上传图片了, 我们直接在Typora内粘贴一张图片, 就会有相应的提示
或者在已有的本地图片上面按右键, 也可以弹出上传图片的按钮, 整个操作非常便捷, 上传速度也挺快的.
5. 踩坑
总的来说还是遇到了一些坑的, 接下来说一下坑点:
- PicGo-Core并没有编译Windows的版本, 所以Typora的作者是fork原版之后重新打包的, 这也导致了版本不能及时的跟主体保持同步更新.
我之前遇到smms v1 api不可用的问题时, 看到PicGo-Core的作者说会在新版本解决这个问题, 目前PicGo-Core的最新版本是1.4.6, 而Typora fork的版本是1.4.4, 我一开始还以为下载一个新版本就能解决, 特意跑去重新编译, 然而弄完发现1.4.6还是存在该问题, 于是遇到了第二个坑.
- 既然换版本不能解决, 我决定换一个图床试试, 翻了半天文档发现全是可视化配置, 然而我的PicGo-Core只有json文本文件配置, 最后发现原来picgo(PicGo-Core)和PicGo(PicGo-Electron)是不一样的
- 调研了一下各个图床, 发现还是smms免费好用, 所以决定使用作者推荐的那个v2版本smms api插件.
然而安装完之后不知道在哪填Authorization, 去翻文档发现这么一句绕口令:
如果你为picgo开发了一个插件,如果这个插件本身需要一些配置项,那么这个插件对应的配置应该直接放置在配置文件下的同名配置里
思考了一下, 我以为是这样
{
"picBed": {
"current": "smms",
"uploader": "smms",
"transformer": "path"
},
"picgoPlugins": {
"picgo-plugin-smms-user": true
},
"picgo-plugin-smms-user": {
"Authorization": "xxxx"
}
}
然而测试上传的时候发现安装插件之后跟安装之前没有一点变化.
思考&测试一番之后, 我发现插件并不会自动注入到smms图床配置中.
大概要手动修改图床为插件名才能使用, 于是:
{
"picBed": {
"current": "smms-user",
"uploader": "smms-user",
"transformer": "path"
},
....
再进行测试又失败了, 但是这次不是说v1接口过时, 而是说找不到Authorization的配置项
开始以为是我手动写的格式不对, 所以又去翻了文档, 发现了PicGo-Core提供了命令行参数设置
.\picgo.exe set plugin smms-user
根据提示填写了Authorization, 结果自动生成的配置文件和我刚才手动写的一模一样, 但就是不行.
最后又思考了一下, 看了看其他图床的配置方法, 决定仿照微博的配置, 试一下picBed.smms-user这种写法, 最后终于成功了= =
6. 总结
虽然整个过程坑挺多的, 但毕竟这个功能也是新出的, 相信之后会越来越完善的
配置完之后用起来真的爽, 以后从Typora粘文章到博客上再也不用手动上传替换图片了~
15 条评论
你的文章让我感受到了不一样的视角,非常精彩。 https://www.4006400989.com/qyvideo/92284.html
谢谢太好啦!
研究了快一个小时,坑还不少。
虽然能上传 cos 了,Typora 测试也通过了,到了编辑框点上传就不行了。
测试 sm,安装了 smms-user 本地安装了 node npm 查 -v 也能用了,面板始终无法安装卸载插件,已全局网络,行吧,离线安装,npm smms 插件第一次成功,第二次死货安装不上,看 picgo 日志提示 npm 没安装,前面 npm 安装插件都成功了,env 也有了,它就是不能安装,我默默的退下,花的时间足够上传几篇博客内容了。
npm网络问题可以试试阿里的cnpm. windows用npm是会遇到很多坑, 所以我写vue的时候是在wsl里配的环境.
还是建议直接用大佬编译好的可执行文件...会轻松很多
使用V2可以,V1虽然测试可以,但是实际使用依旧传不了
另外,如果一下子复制几个图片,需要等久点时间
picGo安装好了,sm的token也配置好了,但就是上传是报文件或配置出错,死活用不了。难受。
您好,想请教下,我用上面的方法,也下载了nodejs,也安装好了,也设置了环境变量nodejs,API V2也安装成功……
但是,在typora里“验证图片上传选项”的时候,一直出错“'C:\Users\用户名' is not recognized as an internal or external command,
operable program or batch file.”
折腾了好久都没找到为什么……您有好的建议吗?
虽然还没收到回复~但是谢谢您的文章~
今天抱着最后再试一次不行就删掉的心态试了测试,居然就成功上传了……我还是保留着之前的设置啥都没动,同样的测试莫名奇妙今天就成功了……诶……
哈哈抱歉, 这两天没看博客, 我没遇到过这个问题, 解决了就好
默默提示一下,最新的PicGo-Core已经自带支持smms-v2了。
另外配置的时候可以使用 picgo set uploader 和 picgo use uploader,不用去翻配置文件...
原版PicGo-Core没有编译Windows端, 所以Typora作者是fork之后自己打包的, 如果Typora作者也同步更新到了最新版就太好了~
我没有用过PicGo, 不太清楚这些命令, Typora的界面上只能打开PicGo-Core的配置页..不过有这些命令确实方便很多哈
我用picgo自带的命令配置smms2的token的时候出bug了, 这个好像只能手动改配置
配置的时候先用图形化的安装好插件,配好之后,图形化的配置页是存储在JSON里,直接复制需要用的就好了
对的 我那会疯狂踩坑的时候有想过下载一个可视化版本的直接复制文件, 但是装完就卸载有点虐死强迫症...所以我踩完坑之后把JSON复制出来了 有需要的可以直接粘贴
太好了, 正在纠结怎么使用呢
666 刚好用到