reruin / sharelist

快速分享 GoogleDrive OneDrive
MIT License
2.68k stars 932 forks source link

webdav 兼容性问题 #733

Closed OpenSourceUser2021 closed 2 years ago

OpenSourceUser2021 commented 2 years ago

问题描述 / Describe the bug

经测试发现 以下3个软件 1.QNAP NAS 同步软件, 2.winscp https://winscp.net/eng/download.php

  1. android filemanager https://apkpure.com/file-manager/com.alphainventor.filemanager 试图连接webdav时会报如下错误 image

用RaiDrive 连接则正常 image

对比发现似乎是对webdav path处理异常导致,麻烦大佬看看

Sharelist 版本 / Sharelist Version

next

复现链接 / Reproduction

No response

日志 / Logs

No response

reruin commented 2 years ago

应该是 xml 的解析问题。某些对webdav子路径 支持不太好的,建议将webdav 路径改为空。

OpenSourceUser2021 commented 2 years ago

0.3.12 修了winscp 跟NAS 的问题 ,但是 android filemanager还是报错,如下为path为空的log

stderr: stderr: Error: non-error thrown: {"code":404,"message":"Can't find [sharelist root] folder"} stderr: at Object.onerror (/sharelist/node_modules/koa/lib/context.js:119:31) stderr: at onerror (/sharelist/node_modules/koa/lib/application.js:165:32) stderr: at processTicksAndRejections (internal/process/task_queues.js:95:5) stderr:

下面path为 /webdav时的log stderr: stderr: Error: non-error thrown: {"code":404,"message":"Can't find [webdav] folder"} stderr: at Object.onerror (/sharelist/node_modules/koa/lib/context.js:119:31) stderr: at onerror (/sharelist/node_modules/koa/lib/application.js:165:32) stderr: at processTicksAndRejections (internal/process/task_queues.js:95:5) stderr:

reruin commented 2 years ago

用0.3.15试试,filemanager 等我找个安卓机做下测试

OpenSourceUser2021 commented 2 years ago

0.3.15 filemanager 正常了,感谢大佬付出!!!

OpenSourceUser2021 commented 2 years ago

补充下,NAS path 虽然没问题了,但是连不上 stdout: [WebDAV] PROPFIND /webdav/ <--> ::ffff:192.168.1.79 stdout: [WebDAV] PROPFIND /webdav/ <--> ::ffff:192.168.1.79 stdout: [WebDAV] PROPFIND /webdav/ <--> ::ffff:192.168.1.79 stdout: [WebDAV] PROPFIND /webdav/ <--> ::ffff:192.168.1.79 stdout: [WebDAV] PROPFIND /webdav/ <--> ::ffff:192.168.1.79

image

另外,ARM64 能否提供静态编译版本,我用的openwrt arm64版需要docker 才可以运行,fork 后改成linuxstatic-arm64 也可以直接运行,体积似乎也小了,但我觉得没必要每次都编译一遍。