halo icon indicating copy to clipboard operation
halo copied to clipboard

图片上传问题

Open betwowt opened this issue 3 years ago • 11 comments

是什么版本出现了此问题?

v2.0.1

使用的什么数据库?

PostgreSQL

使用的哪种方式部署?

Docker

在线站点地址

No response

发生了什么?

使用阿里云oss插件,通过粘贴板先后粘贴三张图片上传,实际结果只有一张图片被上传了,可能原因是三张图片默认粘贴到系统都叫image.png image image image

相关日志输出

No response

附加信息

No response

betwowt avatar Dec 14 '22 05:12 betwowt

没能复现,我这边甚至无法粘贴。你使用的操作系统是?

/triage needs-information

ruibaby avatar Dec 14 '22 08:12 ruibaby

macos monterey m1 芯片

betwowt avatar Dec 14 '22 09:12 betwowt

本地上传也有类似的问题:

image

上传的表单详情如下:

-----------------------------330239117212975919733627836481
Content-Disposition: form-data; name="policyName"

default-policy
-----------------------------330239117212975919733627836481
Content-Disposition: form-data; name="groupName"


-----------------------------330239117212975919733627836481
Content-Disposition: form-data; name="file"; filename="image.png"
Content-Type: image/png

JohnNiang avatar Dec 14 '22 09:12 JohnNiang

可能原因是三张图片默认粘贴到系统都叫image.png

本地存储的已经在https://github.com/halo-dev/halo/pull/3042 中修复了 https://github.com/halo-sigs/plugin-alioss 和 https://github.com/halo-sigs/plugin-s3 都没有对同名文件进行处理,导致同名文件只保留第一张或最后一张

这个问题可以通过先headobject查看是否存在同名文件,若同名可与本地存储一样报同名文件已存在错误 另外需不需要增加文件重命名功能,类似: image @JohnNiang @ruibaby

longjuan avatar Jan 09 '23 10:01 longjuan

Hi @longjuan ,

IMO,建议暂时和本地上传的逻辑保持一致,通过 S3 上传的图片判断一下 object name 是否重复,如果重复则友好提示用户即可。

JohnNiang avatar Jan 09 '23 10:01 JohnNiang

IMO,建议暂时和本地上传的逻辑保持一致,通过 S3 上传的图片判断一下 object name 是否重复,如果重复则友好提示用户即可。

好的 /assign

longjuan avatar Jan 09 '23 10:01 longjuan

Hi @longjuan ,这个问题还需要在 console 端的上传组件还需要优化一下,对于直接粘贴的图片,需要用 $UUID.png 替换 image.png

JohnNiang avatar Jan 10 '23 14:01 JohnNiang

/kind bug /area console /area plugin /remove-triage needs-information

JohnNiang avatar Jan 10 '23 14:01 JohnNiang

Hi @longjuan ,这个问题还需要在 console 端的上传组件还需要优化一下,对于直接粘贴的图片,需要用 $UUID.png 替换 image.png

好的,我研究一下

longjuan avatar Jan 10 '23 14:01 longjuan

Hi @longjuan ,这个问题还需要在 console 端的上传组件还需要优化一下,对于直接粘贴的图片,需要用 $UUID.png 替换 image.png

我看了一下,被命名为image.png似乎是浏览器行为。 在截图后或者其他地方复制一张图片(非本地文件),粘贴到uppy,捕获paste事件发现他name就是image.png image

而在Firefox中会被命名为图片.png image

在复制本地文件然后粘贴时,name就是本地文件名 image

我想不到有什么好的办法处理不同浏览器的行为,大佬来看看吧 @ruibaby

不知道Safari又会命名成什么

longjuan avatar Jan 11 '23 03:01 longjuan

我想不到有什么好的办法处理不同浏览器的行为,大佬来看看吧 @ruibaby

OK,我会抽时间研究一下。

/assign

ruibaby avatar Jan 11 '23 11:01 ruibaby

可能还是得在后端兼容同名的附件上传。无论是本地上传还是 OSS 上传。

JohnNiang avatar Feb 01 '23 02:02 JohnNiang

可能还是得在后端兼容同名的附件上传。无论是本地上传还是 OSS 上传。

什么策略,全部都要重命名还是重复了才重命名,是拼接时间戳吗?

longjuan avatar Feb 01 '23 03:02 longjuan

项目同样遇到这样的问题,这边觉得可以加上时间戳,毕竟是复制上来的附件一般只在本篇文章使用。复用率很低

lixuejun725 avatar Feb 07 '23 09:02 lixuejun725

已经在 https://github.com/halo-dev/halo/pull/3305 中支持自动重命名。

/close

ruibaby avatar Feb 17 '23 08:02 ruibaby

@ruibaby: Closing this issue.

In response to this:

已经在 https://github.com/halo-dev/halo/pull/3305 中支持自动重命名。

/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

f2c-ci-robot[bot] avatar Feb 17 '23 08:02 f2c-ci-robot[bot]

可以麻烦问一下,本地上传方式,上传的图片去哪里呢?

huanglian666 avatar May 11 '24 07:05 huanglian666