AlistGo / alist

🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
https://alist.nn.ci
GNU Affero General Public License v3.0
44.44k stars 5.76k forks source link

从其他盘复制文件到115会产生一个额外的文件夹级别 #4388

Closed zzzshare closed 1 year ago

zzzshare commented 1 year ago

Please make sure of the following things

Alist Version / Alist 版本

v3.17.0

Driver used / 使用的存储驱动

115

Describe the bug / 问题描述

当从其他存储复制文件或者文件夹到115时,在115上会产生一个额外的文件夹,疑似是调用的API在传参的时候传入了多余的级别。 比如我复制mp4文件到115,如图: image 在115就变成了"/xxx.mp4/xxx.mp4",如图(这里用Air Explorer作为展示窗口方便对比查看): image image

如果我传入的是一个文件夹,如图: image 在115就变成了"/AAA文件夹/AAA文件夹/文件夹下的文件",如图(这里用Air Explorer作为展示窗口方便对比查看): image image

也就是说,115那边有把传入的最后一个级别作为目标文件夹的级别。。。这个bug应该属于能修复的吧

Reproduction / 复现链接

Logs / 日志

No response

jonntd commented 1 year ago

无解

hiahia250 commented 1 year ago

我在Alist里面从pikpak复制到onedrive也会这样,使用rclone copy复制就不会了

zzzshare commented 1 year ago

我认为还是传参的问题,刚发现从OneDrive复制到一刻相册也会出现这个路径问题 image

zzzshare commented 1 year ago

额,好像不是驱动的问题,好像是因为我通过webdav挂载后操作导致的

hiahia250 commented 1 year ago

我的意思是你用rclone通过webdav挂载alist,然后用rclone的命令行复制,就不会出现文件夹跟文件重名的问题了。

zzzshare commented 1 year ago

我的意思是你用rclone通过webdav挂载alist,然后用rclone的命令行复制,就不会出现文件夹跟文件重名的问题了。

我是用air explorer通过Webdav协议挂载然后进行复制操作的,从OneDrive复制到一刻相册就爆了上面的错误,多出了路径级别。

然后我从alist的界面进行复制救没有问题,暂时没测复制到115,因为今天突然复制到115会报错:请升级到最新版本: unexpected error,和 context deadline exceeded (Client.Timeout or context cancellation while reading body)

hiahia250 commented 1 year ago

那你跟我正好相反,我之前在Alist内复制会有路径问题。用Rclone通过webdav挂载然后复制倒是没问题

xhofe commented 1 year ago

使用本地存储是否会出现此问题?

zzzshare commented 1 year ago

因为后面升级了alist,目前受alist v3.17.0版本的115无法上传的问题影响目前无法进行测试

zzzshare commented 1 year ago

使用本地存储是否会出现此问题?

@Xhofe 我今天升级了3.18后测试了一下:

  1. 从本地存储通过网页端上传文件夹并没有出现此问题;
  2. 通过WebDav挂载然后从本地上传文件夹也没有出现此问题;
  3. 不管是通过alist的web端,还是通过WebDav挂载,从其他网盘复制115网盘还是会多出最后一个路径级别。
zzzshare commented 1 year ago

持续关注这个问题,保持一下活跃度

zzzshare commented 1 year ago

更新发现: 当我分别用两个服务器挂载Alist服务,同时通过webdav挂载两个服务,从服务器1复制到服务器2的115盘不会产生额外的目录层级

也就是说,是需要在同一个alist服务内从一个网盘传输到另一个网盘才会产生额外的一个层级

zzzshare commented 1 year ago

更新至3.20.1,此问题还存在,同一个alist服务内挂载的其他盘复制文件或文件夹到115会多出一个层级,而使用上传则不会,比如从本地上传到115,或者从另一个alist的服务复制数据到115,这两种共同点就是对于挂载115的alist来说是进行了上传而不是复制。 image

DesistDaydream commented 1 year ago

这个 issue 的标题可以改一下: 使用 rclone copy/sync 等命令时,会在目标上创建一个与文件同名的目录

效果如下:

 ~]# rclone lsd alist-local:/local/test.txt
2023/07/31 15:20:39 ERROR : : error listing: directory not found
2023/07/31 15:20:39 Failed to lsd with 2 errors: last error was: directory not found
~]# 
~]# rclone copy alist-local:/aliyun/test.txt alist-local:/local --transfers 1
2023/07/31 15:20:42 ERROR : test.txt: Failed to copy: Copy NewObject failed: object not found
2023/07/31 15:20:42 ERROR : Attempt 1/3 failed with 1 errors and: Copy NewObject failed: object not found
2023/07/31 15:20:42 ERROR : test.txt: Failed to copy: Copy NewObject failed: object not found
2023/07/31 15:20:42 ERROR : Attempt 2/3 failed with 1 errors and: Copy NewObject failed: object not found
2023/07/31 15:20:42 ERROR : test.txt: Failed to copy: Copy NewObject failed: is a directory not a file
2023/07/31 15:20:42 ERROR : Attempt 3/3 failed with 1 errors and: Copy NewObject failed: is a directory not a file
2023/07/31 15:20:42 Failed to copy: Copy NewObject failed: is a directory not a file
~]# 
~]# 
~]# rclone lsd alist-local:/local/test.txt
~]# rclone ls alist-local:/local/test.txt/
    24292 test.txt

notes: /aliyun/ 是阿里云盘,/local/ 是本地文件系统。

2023.8.6 补充

上次忘记测试 webdav 到 OBS了,我今天测试了用 sync 命令到 OBS,sync 时的新增和删除都是正常

image

stale[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

github-actions[bot] commented 1 year ago

Hello @, this issue was closed due to inactive more than 52 days. You can reopen or recreate it if you think it should continue. Thank you for your contributions again.