Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: 能不能在"自定义域名"那里加个是否拼接“存储路径”的选项 #1281

Open
3 tasks done
fscarmen opened this issue Oct 9, 2024 · 12 comments
Open
3 tasks done
Assignees
Labels

Comments

@fscarmen
Copy link

fscarmen commented Oct 9, 2024

前置阅读 | Pre-reading

PicGo的版本 | PicGo Version

PicGo -2.4.0-beta.8

系统信息 | System Information

Mac

问题重现 | Bug reproduce

上传完,输出的路径是 https://<自定义域名>/<存储路径>/<文件名>

而实际我只需要 https://<自定义域名>/<文件名>

所以希望在这两处其中的任意一处,添加一个是否把 “存储路径” 拼接在 url 里的可选框

现 windows 和 mac 版本都存在这个使用的问题,希望大佬抽时间处理一下

谢谢老大提供这么好用的应用。

image

相关日志 | Logs

No response

@Molunerfinn
Copy link
Owner

这个如果要做需要对所有的图床都做一下处理才行。这里可能我要想个比较通用的方法。

@Molunerfinn
Copy link
Owner

另外这个应该算作 feature request 而不是 bug

@fscarmen
Copy link
Author

fscarmen commented Oct 9, 2024

这个如果要做需要对所有的图床都做一下处理才行。这里可能我要想个比较通用的方法。

我觉得加个 是否在url的最后添加路径 的复选框,又或者自定义那里严格执行,不会强制留尾巴,又或者加个占位符都可以。谢谢老大及时回复

@igengdu
Copy link

igengdu commented Oct 10, 2024

  1. 谢谢开发者大佬分享的优质软件。
  2. 我也希望,Picgo输出自定义连接时,可以提供输出或不输出图片路径的链接选择
    例如,图片路径是images,自定义地址是:https://a.b.c ,文件名是1.png,那么,目前生产的链接只能是 https://a.b.c/images/1.png
    希望可以提供选项,可以不输出包含路径的自定义链接:https://a.b.c/1.png
  • 系统配置
    PicGo的版本 | PicGo Version:PicGo -2.4.0-beta.8
    电脑操作系统:Windows

  • 再此感谢开发者大佬。

@d-w-x
Copy link

d-w-x commented Oct 13, 2024

d-w-x/picgo-plugin-gitlab-files#10 我这边也收到了类似的请求。

@Molunerfinn 我理解这个能力是不是应该提供一个通用的 replace 能力(批量将a路径替换为b路径)或者给插件提供一个copy/export url阶段的hack,允许插件来修改自己插件存储图片的链接,而不是在底层存储的时候就直接存储为自定义域名的url?

我的考量是“自定义域名”相较于插件本身配置的域名而言一般是不稳定的(例如 gitlab、gitee 是稳定的,用户在此基础上自建反代是不稳定的),直接存储翻译后的url可能在反代挂掉的情况下导致图片无法呗访问。

我设想的操作方式:(以 github 为例)
上传阶段:(保持现状) 图片 -> github -> raw.githubusercontent.com/xxx 存储。
获取图片阶段: raw.githubusercontent.com/xxx --plugin/全局定义的replace规则--> https://cdn.jsdelivr.net/gh/xxx

@fscarmen
Copy link
Author

最近做了个 github / gitlab 图床集群的方案,就差两位大佬这块的支持了。

image

@Molunerfinn
Copy link
Owner

Molunerfinn commented Oct 13, 2024

picgo 目前存储的数据结构里有 url 和 文件名,每个插件自身可能还有自己的一些额外配置,比如自定义域名,但是有的图床是没有这个配置的,所以它不适合做全局通用配置。
存储是一定要存 url的 这个没得说,因为 picgo 的本质是获取图片 url 的工具,基本功能不受插件影响。但是 picgo 不会去区分什么是原始 url 什么是最终 url。原则上只有最终 url。
插件本身是可以实现 afterUploadPlugins,可以通过修改 output 里的 url 来影响 picgo 落地相册文件的 url 的。

不过 copy 按钮,会跟 remove 按钮一样提供钩子或者其他 api 给到插件,让插件去监听亦或是介入这个动作

@d-w-x
Copy link

d-w-x commented Oct 13, 2024

插件本身是可以实现 afterUploadPlugins,可以通过修改 output 里的 url 来影响 picgo 落地相册文件的 url 的。

实际上在这个场景下,落相册文件url还是原始url比较好,这个是一个稳定的链接,如上所述。
可能还是需要辛苦支持下 copy 按钮的 hack,同时可能需要考虑下这个hack在 PicGo-Core 中,picgo upload /xxx/xx/xx.jpg 返回的结果数据是否也被同时 hack。

@d-w-x
Copy link

d-w-x commented Oct 13, 2024

picgo 目前存储的数据结构里有 url 和 文件名,每个插件自身可能还有自己的一些额外配置,比如自定义域名,但是有的图床是没有这个配置的,所以它不适合做全局通用配置。

这个可能是对“全局通用配置”理解我们不一样。
实际上可以这个配置可以允许用户配置一个列表,第一行是前缀链接,第二行是替换链接,形如:

原始链接 替换链接
raw.githubusercontent.com/【user】/【repo】/refs/heads/master/ cdn.jsdelivr.net/gh/【user】/【repo】/

其中以上可以支持正则表达式。当用户点击 copy 按钮时,依次执行表中的替换,输出最终替换结果即可。

@Molunerfinn
Copy link
Owner

实际上picgo之前为了支持非图片上传的需求,有新加一个叫做 fileUrl 的属性,如果有这个属性点击相册的 copy 会优先复制,而 imgUrl 则是用来做相册展示的(可以理解为对于非图片类型的,相册里展示的是文件类型图,点击复制能够拿到文件本身地址。)。这个其实也是一个潜在扩展点。

你说的前缀匹配替换,其实在相册里已经有类似的功能,能够批量替换图片 url 。只不过它修改后会影响落地的文件。

不过你说的那个思路我已经明白了,这个确实可以做成一个全局配置。不过现有的图床已经存在的自定义域名是不会有功能修改的。

我会额外添加一个图片地址匹配和替换的能力,如果有需要的用户可以使用这个配置。

@d-w-x
Copy link

d-w-x commented Oct 13, 2024

嗯,辛苦你这边了。

无论是全局配置还是插件提供扩展点我觉得都ok,辛苦开发好后同步下我,我回复下这边给我提pr的老哥~

@Molunerfinn
Copy link
Owner

好的 应该会是下周,因为目前工作挺忙只能抽空维护

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants