PicGo/PicGo-Core

picgo-core 不识别网络图片链接

zhcbbs opened this issue · 12 comments

基于GPT3.5搭建定制化知识库.md

这个md文档的链接上传总是报错,在终端使用picgo upload命令上传链接,反馈错误: no matches found

感觉是未识别网络图片链接。这种链接形式比较特殊,是omnivore剪藏工具剪藏网页后生成的剪藏网页的图片链接,在浏览器中可以正常显示,说明链接本身没有问题。

因为你的链接需要登录态,你可以试试你开浏览器隐私模式再打开这个链接能否打开。

例如这个图片链接:https://proxy-prod.omnivore-image-cache.app/0x0,sgTCFY-0eJ5F8gzIHhH85pqxGFaPoefxDjrUOUglgka8/https://mmbiz.qpic.cn/mmbiz_png/VXdFUnbrlOhuVhkrTSq7l5rnpWmsE27XgyviaRqzO9AYSRmL2pTiciaHrpOl6Xp5oetOgCUPuYTNks6k29Zye63qg/640?wx_fmt=png

不需要登录状态,我发给朋友,任何人拷贝到浏览器都可以显示,和登录状态无关,但是picgo-core不识别这个链接。我最早定位这个错误,是使用ob插件 image auto upload插件,发现无法上传图片,但是可以下载图片至本地,经过与插件作者沟通,确定bug和插件无关,是picgo的问题。同时,我在终端使用指令上传也是报错。

no matches found 是 shell 层面的报错,不是 picgo 层面的报错。

请注意你的图片 URL 链接直接贴到 shell 里是会有问题的,因为带有不合法的字符。这个是你 URL 的问题。

注意看可以上传的链接长这样(注意看结尾部分):

https://proxy-prod.omnivore-image-cache.app/0x0,sgTCFY-0eJ5F8gzIHhH85pqxGFaPoefxDjrUOUglgka8/https://mmbiz.qpic.cn/mmbiz_png/VXdFUnbrlOhuVhkrTSq7l5rnpWmsE27XgyviaRqzO9AYSRmL2pTiciaHrpOl6Xp5oetOgCUPuYTNks6k29Zye63qg/640\?wx_fmt\=png

你的原始链接长这样:

https://proxy-prod.omnivore-image-cache.app/0x0,sgTCFY-0eJ5F8gzIHhH85pqxGFaPoefxDjrUOUglgka8/https://mmbiz.qpic.cn/mmbiz_png/VXdFUnbrlOhuVhkrTSq7l5rnpWmsE27XgyviaRqzO9AYSRmL2pTiciaHrpOl6Xp5oetOgCUPuYTNks6k29Zye63qg/640?wx_fmt=png

看出区别了吗?可以上传的链接上传如下:

image

看看是不是你的图片?
https://s2.loli.net/2023/05/17/LaHgYnqGTc3BMU8.png

你需要自行解决 URL 链接的问题

感谢回复。
我平常使用时在obsidian中image auto upload插件中使用,由插件检测到图片链接调用picgo-core上传图片。
这个时候,是否也是同样存在非法字符问题么?如果想自动化处理这个问题,是不是需要修改插件代码,让插件提前在非法字符前加入“\”转义符?

为什着image auto upload插件下载图片时,不受这个链接非法字符影响,但是调用上传图片时,就会出现问题?

因为调用上传图片的时候,这个链接会通过命令行调用,在命令行里有些字符需要转义才能使用,不然命令行会不识别

好的

能否告诉我需要转义识别的全部字符是什么?我哪里可以查询到具体说明?

我也不是这方面的专家,擅用搜索引擎:
https://blog.walterlv.com/post/linux-shell-escape.html

给您添麻烦了,多谢指点,感谢您提供的这么好用的工具。

又发现一个omnivore剪藏的网页下载图片有问题,你测试一下。

北京2023年中招时间安排.md

挑选一个链接:

https://proxy-prod.omnivore-image-cache.app/0x0,srmfUGtj2F_0-rG8gbsQYSX1_SV_x0NSG4NKfKIC40Tk/https://rls3.cj.sina.com.cn/products/202305/e9ee63e1abc436476aed64d966943aba.png

再ob插件image auto dwnload 报upload error。

我在终端使用picgo-core指令上传:
picgo upload "https://proxy-prod.omnivore-image-cache.app/0x0,srmfUGtj2F_0-rG8gbsQYSX1_SV_x0NSG4NKfKIC40Tk/https://rls3.cj.sina.com.cn/products/202305/e9ee63e1abc436476aed64d966943aba.png"

报错信息:

[PicGo INFO]: Before transform
[PicGo INFO]: Transforming... Current transformer is [path]
[PicGo WARN]: failed
[PicGo ERROR]: Error: request https://proxy-prod.omnivore-image-cache.app/0x0,srmfUGtj2F_0-rG8gbsQYSX1_SV_x0NSG4NKfKIC40Tk/https://rls3.cj.sina.com.cn/products/202305/e9ee63e1abc436476aed64d966943aba.png error, maxContentLength size of Infinity exceeded
at /opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:38189
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Promise.all (index 0)
at async Object.handle (/opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:37138)
at async $e.doTransform (/opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:16679)
at async $e.start (/opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:15916)
at async Tt.upload (/opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:71270)
at async /opt/homebrew/lib/node_modules/picgo/dist/index.cjs.js:1:3226

请加 https://

image

我加了https啊,您看我的指令。

是我配置的图床的问题么?