cloud189
cloud189 copied to clipboard
[BUG] webdav Mkcol出现错误
我使用了两种方式去测试,报错内容一致
import { createClient } from "webdav/dist/node";
const client = createClient("http://localhost:83")
client.createDirectory("/test").then(() => {
console.log("Directory created successfully");
}).catch((error) => {
console.error("Error creating directory:", error);
});
Error creating directory: K: request to http://localhost:83/test/ failed, reason: socket hang up
at ClientRequest.<anonymous> (/workspace/dist/test.js:2:181278)
at ClientRequest.emit (node:events:517:28)
at Socket.socketOnEnd (node:_http_client:525:9)
at Socket.emit (node:events:529:35)
at endReadableNT (node:internal/streams/readable:1400:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
type: 'system',
errno: 'ECONNRESET',
code: 'ECONNRESET',
erroredSysCall: undefined
}
./rclone -vv -c copy 'Hasher:save/***/' '189:new/***/' -P --retries 1 --transfers 1 --checkers 1 --disable copy --filter-from ignore.txt --max-connections 1
2025/06/27 12:56:36 DEBUG : pacer: low level retry 6/10 (error Mkcol "http://localhost:83/Ehentai.new/Marin%20Kitagawa%20%5BShizuku%5D%20%5B3277152%5D/": EOF)
root@9a4dd4966383:/workspace# ./cloud189 webdav :83
2025/06/27 12:53:09 http: panic serving [::1]:45588: runtime error: invalid memory address or nil pointer dereference
goroutine 6 [running]:
net/http.(*conn).serve.func1()
/opt/hostedtoolcache/go/1.21.13/x64/src/net/http/server.go:1873 +0xe0
panic({0x8487a60, 0x87f1ee0})
/opt/hostedtoolcache/go/1.21.13/x64/src/runtime/panic.go:920 +0x24c
github.com/gowsp/cloud189/pkg/app.(*api).refresh(0x9c36368)
/home/runner/work/cloud189/cloud189/pkg/app/api.go:37 +0x1f
github.com/gowsp/cloud189/pkg/invoker.(*Invoker).Do(0x9c1a318, 0x9e5ca80, {0x8489ea0, 0xa278350}, 0x3)
/home/runner/work/cloud189/cloud189/pkg/invoker/invoker.go:71 +0x8f
github.com/gowsp/cloud189/pkg/invoker.(*Invoker).Post(0x9c1a318, {0x84d6107, 0x14}, 0x9f75b70, {0x8489ea0, 0xa278350})
/home/runner/work/cloud189/cloud189/pkg/invoker/invoker.go:111 +0x2a3
github.com/gowsp/cloud189/pkg/app.(*api).Mkdir(0x9c36368, {0x857bcf0, 0x87f4420}, {0x9c2046e, 0x6})
/home/runner/work/cloud189/cloud189/pkg/app/req_dir_new.go:51 +0x303
github.com/gowsp/cloud189/pkg/drive.(*FS).Mkdir(0x9e42090, {0x9c2046e, 0x6})
/home/runner/work/cloud189/cloud189/pkg/drive/drive.go:52 +0xbc
github.com/gowsp/cloud189/pkg/webdav.(*CloudFileSystem).Mkdir(0x9c1a330, {0x857b0d0, 0x9e42240}, {0x9c2046e, 0x6}, 0x1ff)
/home/runner/work/cloud189/cloud189/pkg/webdav/file_system.go:50 +0x36
golang.org/x/net/webdav.(*Handler).handleMkcol(0x9e44ec0, {0x857aa28, 0x9f240a0}, 0x9e5c980)
/home/runner/go/pkg/mod/golang.org/x/[email protected]/webdav/webdav.go:312 +0x1d9
golang.org/x/net/webdav.(*Handler).ServeHTTP(0x9e44ec0, {0x857aa28, 0x9f240a0}, 0x9e5c980)
/home/runner/go/pkg/mod/golang.org/x/[email protected]/webdav/webdav.go:60 +0x1d6
github.com/gowsp/cloud189/pkg/webdav.(*CloudFileSystem).ServeHTTP(0x9c1a330, {0x857aa28, 0x9f240a0}, 0x9e5c980)
/home/runner/work/cloud189/cloud189/pkg/webdav/file_system.go:35 +0x1e6
net/http.serverHandler.ServeHTTP({0x9f24000}, {0x857aa28, 0x9f240a0}, 0x9e5c980)
/opt/hostedtoolcache/go/1.21.13/x64/src/net/http/server.go:2943 +0x99
net/http.(*conn).serve(0x9c00720, {0x857b0b0, 0x9c1a3a8})
/opt/hostedtoolcache/go/1.21.13/x64/src/net/http/server.go:2014 +0x66d
created by net/http.(*Server).Serve in goroutine 1
/opt/hostedtoolcache/go/1.21.13/x64/src/net/http/server.go:3091 +0x47f
我还发现直接mkdir好像无法正确创建带有空格的文件夹,无论是用引号包裹