simpread icon indicating copy to clipboard operation
simpread copied to clipboard

内网图片无法上传到 Cloudinary 图床

Open ArtanisCV opened this issue 9 months ago • 27 comments

请描述你的建议或任何内容

目前 Cloudinary 图床的原理似乎会先把图片的URL发给简悦的服务器,再进行上传。 这样一来,对于内网图片,URL发给简悦后无法解析,自然也就上传不到图床(会提示上传失败)。 之前的 Notion 图床似乎没这个问题。 这里可以修改为把图片直接发给简悦服务器吗?

补充说明

No response

ArtanisCV avatar Oct 09 '23 12:10 ArtanisCV

emmm 这确实是个问题…

我先 Mark 下,考虑下解决方案。

Kenshin avatar Oct 09 '23 14:10 Kenshin

你也可以试试 https://github.com/Kenshin/simpread/discussions/4954#discussioncomment-7092394 能否解决你的问题。

Kenshin avatar Oct 10 '23 04:10 Kenshin

你也可以试试 #4954 (comment) 能否解决你的问题。

试了一下,配置好了PicGo,但简悦只能成功上传并替换一个URL,同一篇文章里的其他URL都提示上传失败。但所有图片URL的路径格式是一样的。比较奇怪。

ArtanisCV avatar Oct 10 '23 09:10 ArtanisCV

这可能是 PicGo 的 Bug,试试下面的方案

image

Kenshin avatar Oct 10 '23 10:10 Kenshin

试了一下还是不行,是不是url不能带有参数?我看了下,类似这样的可以 https://xx.com/asset/yyyy 但是这样的不行 https://xx.com/asset/yyyy?height=1070&width=2400

ArtanisCV avatar Oct 10 '23 10:10 ArtanisCV

我研究下,估计还是 PicGo 的问题…

Kenshin avatar Oct 10 '23 14:10 Kenshin

我研究下,估计还是 PicGo 的问题…

感觉确实是 PicGo 自己的问题,我在 PicGo 里手动指定 url 上传,带参数的那些传不上去。不知道是不是因为 PicGo 把参数丢了导致取不到图片

ArtanisCV avatar Oct 11 '23 06:10 ArtanisCV

这就很奇怪了... 你可以在 PicGo 的 Issues 提交你的问题,他们回复也很快的。

Kenshin avatar Oct 11 '23 07:10 Kenshin

这就很奇怪了... 你可以在 PicGo 的 Issues 提交你的问题,他们回复也很快的。

研究了下 PicGo 的日志,应该是鉴权的问题……鉴权会同时用到 url 里的 token 参数 + 浏览器 cookie,但 PicGo 没法带上 cookie,所以就读不到图片了。

这样看,感觉好像还是需要和之前 notion 图床一样的做法,简悦在浏览器端请求到图片内容,再发起上传?

ArtanisCV avatar Oct 13 '23 02:10 ArtanisCV

感觉好像还是需要和之前 notion 图床一样的做法,简悦在浏览器端请求到图片内容,再发起上传?

Notion 图床无法使用了,做不到这点 😂

如果 PicGo 能支持 base64 上传也行,我可以在浏览器直接把图片转换 base64 在上传,或非 URL 的上传方案都行。

Kenshin avatar Oct 13 '23 03:10 Kenshin

感觉好像还是需要和之前 notion 图床一样的做法,简悦在浏览器端请求到图片内容,再发起上传?

Notion 图床无法使用了,做不到这点 😂

如果 PicGo 能支持 base64 上传也行,我可以在浏览器直接把图片转换 base64 在上传,或非 URL 的上传方案都行。

命令行的 PicGo (pigo-core) 好像是可以的,有个 transformer 可以选择 base64。但 GUI 的不知道是否可以。 或者使用简悦服务器的方案里,可以接受 base64 吗,这个可控性应该更高一些?

ArtanisCV avatar Oct 13 '23 03:10 ArtanisCV

emmm 我研究下,感觉够呛,主要是它的 API 似乎不支持。

Kenshin avatar Oct 13 '23 10:10 Kenshin

emmm 我研究下,感觉够呛,主要是它的 API 似乎不支持。

Hello,请问这里有什么更新吗?我看了下,貌似服务器接口最终也是调用 PicGo 里的 uploader,而 uploader 的配置支持指定base64 transformer。不知道是不是可以在服务器里配置个 config 让它走到 base64 里。

upload 最终会走到这里:https://github.com/PicGo/PicGo-Core/blob/dev/src/core/Lifecycle.ts#L16

ArtanisCV avatar Oct 25 '23 07:10 ArtanisCV

貌似服务器接口最终也是调用 PicGo 里的 uploader

简悦的服务器没有使用 Picgo 的方案。而直接使用 Cloudinary API

Kenshin avatar Oct 25 '23 08:10 Kenshin

Cloudinary API 支持 base64 ,但对于简悦来说传 base64 有点太消耗性能了。

Kenshin avatar Oct 25 '23 08:10 Kenshin

Cloudinary API 支持 base64 ,但对于简悦来说传 base64 有点太消耗性能了。

如果服务端用 base64 太耗性能,是否可以在简悦插件里直接上传到 Cloudinary? PS. 从 Cloudinary 的 API 看,似乎不需要先经过 PicGo 中转,直接在插件里就足以把图片传上去?这样也没有鉴权之类的问题了。

ArtanisCV avatar Nov 08 '23 03:11 ArtanisCV

我说的 消耗性能指的就是后端 😂

base64 编码的内容传给它太大了。

Kenshin avatar Nov 08 '23 07:11 Kenshin

我说的 消耗性能指的就是后端 😂

base64 编码的内容传给它太大了。

抱歉我没开发过web前端对这里的细节不太了解。 这里的后端消耗,是指如果简悦的扩展直接用 cloudinary api 发 base64,会让chrome扛不住?

ArtanisCV avatar Nov 08 '23 07:11 ArtanisCV

没事

base64 = 后端消耗 = 流量(性能) = 💰 ... 😂

简悦是买断制,拥有后端服务的功能对高级账户是免费的,但对于我来说是需要按年(或流量)付费的。

Kenshin avatar Nov 08 '23 07:11 Kenshin

没事

base64 = 后端消耗 = 流量(性能) = 💰 ... 😂

简悦是买断制,拥有后端服务的功能对高级账户是免费的,但对于我来说是需要按年(或流量)付费的。

噢我的意思是,不走服务器,直接在简悦的扩展里发 upload 请求到 cloudinary 可以做到吗,即都发生在用户自己的 brower 里?

ArtanisCV avatar Nov 08 '23 07:11 ArtanisCV

应该没法做到,我可以研究下。

Kenshin avatar Nov 08 '23 08:11 Kenshin

应该没法做到,我可以研究下。

我看 cloudinary 提供了一个简单的 JS endpoint,不知道能否使用 https://cloudinary.com/documentation/javascript_image_and_video_upload

ArtanisCV avatar Nov 08 '23 09:11 ArtanisCV

我测试过,不行的,我会研究下的。

PS:你可真能「钻研」👍

Kenshin avatar Nov 08 '23 10:11 Kenshin

我测试过,不行的,我会研究下的。

PS:你可真能「钻研」👍

研究的咋样了,我这边也有这个问题,内网图片无法上传

eyun221 avatar Nov 30 '23 05:11 eyun221

求进度,内网图片上传是刚需

KennyNoDie avatar Dec 12 '23 06:12 KennyNoDie

@eyun221 @KennyNoDie

okay 可以提高下优先级 😂

Kenshin avatar Dec 12 '23 07:12 Kenshin

同求, 谢谢. 性能问题可以后续优化, 可用的方法是图片一个一个上传, 避免一次性导致 OOM

IITII avatar Feb 27 '24 10:02 IITII