halo-sigs / plugin-alist

集成 AList,支持创建 AList 类型的附件存储策略
https://www.halo.run/store/apps/app-wEGMV
GNU General Public License v3.0
9 stars 3 forks source link

[bug]有关挂载路径 #25

Closed AR-26710 closed 3 weeks ago

AR-26710 commented 3 weeks ago

简述: 当修改alist中的挂载路径后系统会报如下错误,而且无法将附件在附件库中进行删除,虽显示删除成功,但会一直保持正在删除状态。

org.springframework.web.server.ServerWebInputException: 400 BAD_REQUEST "Failed to delete file: failed get storage: storage not found; rawPath: /阿里云盘/halo/images/004.jpg"

复现:

1.在alist中的挂载路径为:/阿里云盘 Image

2.上传图片 3.修改alist中的挂载路径为:/aliyun Image

4.对此图片进行删除

建议: 在存储策略设置中不是有挂载路径这一字段吗? 可否将此字段自动填充到文件路径,如:{挂载路径}/004.jpg 这样当存储策略设置中挂载路径进行修改后,文件路径将自动更新。

或者当出现这种情况时,对用户进行提示,并且提供是否强制删除功能。

Image

JohnNiang commented 3 weeks ago

Hi @AR-26710 , thank you for reaching out here!

我这边已经成功复现以上问题。

/kind bug /triage accepted

JohnNiang commented 3 weeks ago

经过实际测试发现,如果只是更改了存储中的挂载路径,那么在当前插件中是无法解决你的问题的。你需要在对应的 AList 用户设置中重新配置一下基本路径。

即使修改了用户的基本路径,所以已经生成的附件链接都将失效。

但是,经过测试发现另外一个问题,如果初始化时,文件夹不存在的时候,无法正常上传文件。这个我将提交 PR 进行修复。

JohnNiang commented 3 weeks ago

根据上面的错误提示,我发现是存储被删除导致无法正常删除附件的问题。

接下来,删除附件时,我将忽略存储找不到的错误。

/assign