picgo-plugin-s3 icon indicating copy to clipboard operation
picgo-plugin-s3 copied to clipboard

[Bug]: 使用 S3插件上传到 Minio,不知道为啥,会自动在路径里面加多个 bucket 名称,传一次加一个

Open isFire opened this issue 1 year ago • 12 comments

每上传一张图片,bucketName 就多一个,然后使用 picGo 和 picList 都会这样 image

isFire avatar Sep 01 '23 02:09 isFire

插件只会根据参数的 endpointbucketName 拼接最终URL,理论上上述参数不变,不会每次都变化输出前缀

~/用最新版本验证结果 ❯❯❯ picgo upload xxx.jpeg
[PicGo INFO]: Before transform
[PicGo INFO]: Transforming... Current transformer is [path]
[PicGo INFO]: Before upload
[PicGo INFO]: Uploading... Current uploader is [aws-s3]
[PicGo SUCCESS]:
http://1.1.1.1:9090/test/2023/09/1991c1e07d83faac996335c3016ea91e.jpeg

wayjam avatar Sep 02 '23 03:09 wayjam

只能我再研究下是不是我啥配置配的有问题了

isFire avatar Sep 04 '23 06:09 isFire

插件只会根据参数的 endpointbucketName 拼接最终URL,理论上上述参数不变,不会每次都变化输出前缀

~/用最新版本验证结果 ❯❯❯ picgo upload xxx.jpeg
[PicGo INFO]: Before transform
[PicGo INFO]: Transforming... Current transformer is [path]
[PicGo INFO]: Before upload
[PicGo INFO]: Uploading... Current uploader is [aws-s3]
[PicGo SUCCESS]:
http://1.1.1.1:9090/test/2023/09/1991c1e07d83faac996335c3016ea91e.jpeg

会的,配置不知道为啥一次多一个桶名

LeenHawk avatar Sep 13 '23 04:09 LeenHawk

我想我可能找到问题在哪了,如果不设置PathStyle就没有这个问题,上面的 replace应该是将后边的 bucket 切掉是吧,但是没成功 image

isFire avatar Sep 20 '23 10:09 isFire

我也有这个问题,上传一次加一次

ExoticSkywing avatar Jan 06 '24 17:01 ExoticSkywing

相同的问题,我是使用s2的配置写的,也会自动加上bucket的路径

zeahoo avatar Mar 15 '24 05:03 zeahoo

我想我可能找到问题在哪了,如果不设置PathStyle就没有这个问题,上面的 replace应该是将后边的 bucket 切掉是吧,但是没成功 image

问题不出在这里,replace这里只是将最后一个/切掉,问题是出在下一句添加bucket name后缀的代码上,这里是直接对userConfig变量的属性进行的操作,而对userConfig的操作,会直接修改对应PicGo实例的_config属性,由于桌面版上传时每次传递的是相同的一个PicGo实例,所以第二次上传获取到的新的userConfig变量的urlPrefix属性,就会延续上一次修改后的情况。

这也是为什么这个问题只在桌面版有,cli版本没有,因为cli版本每次上传都会新new一个PicGo实例出来,不会相互影响,而桌面版连续上传的时候传递的是同一个PicGo实例,上一次的修改会带入到下一次的上传。

修复方法示例如下,把urlPrefix先赋值给新变量,在修改和使用:

let urlPrefix = userConfig.urlPrefix
    if (urlPrefix) {
      urlPrefix = urlPrefix.replace(/\/?$/, "")
      if (userConfig.pathStyleAccess && !userConfig.disableBucketPrefixToURL) {
        urlPrefix += "/" + userConfig.bucketName
      }
    }

Kuingsmile avatar Apr 23 '24 08:04 Kuingsmile

@wayjam @isFire https://github.com/wayjam/picgo-plugin-s3/pull/40 已提交pr进行修复

Kuingsmile avatar Apr 23 '24 08:04 Kuingsmile

Released v1.3.6

wayjam avatar Apr 24 '24 15:04 wayjam

image disableBucketPrefixToURL 在这个设置文件即使改成true, 在picgo界面里还是会被改成“false"字符串, 所以这段代码还是会有问题 if (userConfig.pathStyleAccess && !userConfig.disableBucketPrefixToURL) {

atusoft avatar May 17 '24 03:05 atusoft

disableBucketPrefixToURL在设置里用的是type input ,但这个变量是个布尔类型,应该用type confirm

Kuingsmile avatar May 17 '24 05:05 Kuingsmile

解决办法是在你的域名设置后面把你多出来的加上

2591335205 avatar Jul 22 '24 13:07 2591335205