OpenListTeam / OpenListTeam/OpenList
[BUG] 百度网盘上传失败 31353
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 24.7k
- Forks
- 2.3k
- Avg merge
- 1d 20h
- Merged PRs (30d)
- 36
Description
请确认以下事项
-
我已确认阅读并同意 AGPL-3.0 第15条 。
本程序不提供任何明示或暗示的担保,使用风险由您自行承担。 -
我已确认阅读并同意 AGPL-3.0 第16条 。
无论何种情况,版权持有人或其他分发者均不对使用本程序所造成的任何损失承担责任。 -
我确认我的描述清晰,语法礼貌,能帮助开发者快速定位问题,并符合社区规则。
-
我已确认阅读了OpenList文档。
-
我已确认没有重复的问题或讨论。
-
我已确认是
OpenList的问题,而不是其他原因(例如 网络 ,依赖或操作)。 -
我认为此问题必须由
OpenList处理,而非第三方。 -
我已确认这个问题在最新版本中没有被修复。
-
我没有阅读这个清单,只是闭眼选中了所有的复选框,请关闭这个 Issue 。
OpenList 版本(必填)
v4.2.1
使用的存储驱动(必填)
Baidu Netdisk
问题描述(必填)
如下两种错误日志,都是百度接口返回错误码errno: 10 以及errno: 31353
对于错误码10,百度文档有如下解释
10 | 创建文件失败 | 1.一般是分片问题;2.size大小对不对,跟实际文件是否一致,跟预上传接口的size是否一致;3.分片上传阶段,分片传完了么;4.对照文档好好检查一下每一步相关的参数及值是否正确。
看上去像是驱动实现就该内部处理好的问题。
对于错误码31353,我没能在百度文档中找到相关内容。
日志(必填)
ERRO[2026-05-08 18:11:27] failed put /data/5: req: [https://pan.baidu.com/rest/2.0/xpan/file] ,errno: 10, refer to https://pan.baidu.com/union/doc/
github.com/OpenListTeam/OpenList/v4/internal/op.Put
/home/runner/work/OpenList/OpenList/internal/op/fs.go:709
github.com/OpenListTeam/OpenList/v4/internal/fs.putDirectly
/home/runner/work/OpenList/OpenList/internal/fs/put.go:110
github.com/OpenListTeam/OpenList/v4/internal/fs.PutDirectly
/home/runner/work/OpenList/OpenList/internal/fs/fs.go:112
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).handlePut
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:405
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).ServeHTTP
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:74
github.com/OpenListTeam/OpenList/v4/server.ServeWebDAV
/home/runner/work/OpenList/OpenList/server/webdav.go:47
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDav.DownloadRateLimiter.func3
/home/runner/work/OpenList/OpenList/server/middlewares/limit.go:51
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDav.UploadRateLimiter.func2
/home/runner/work/OpenList/OpenList/server/middlewares/limit.go:28
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDAVAuth
/home/runner/work/OpenList/OpenList/server/webdav.go:151
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server/middlewares.StoragesLoaded
/home/runner/work/OpenList/OpenList/server/middlewares/check.go:35
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/recovery.go:102
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.LoggerWithConfig.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/logger.go:249
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/gin.go:644
github.com/gin-gonic/gin.(*Engine).ServeHTTP
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/gin.go:600
net/http.serverHandler.ServeHTTP
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/server.go:3340
net/http.(*conn).serve
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/server.go:2109
runtime.goexit
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693
ERRO[2026-05-08 18:12:08] failed put /data/65: req: [https://pan.baidu.com/rest/2.0/xpan/file] ,errno: 31353, refer to https://pan.baidu.com/union/doc/
github.com/OpenListTeam/OpenList/v4/internal/op.Put
/home/runner/work/OpenList/OpenList/internal/op/fs.go:709
github.com/OpenListTeam/OpenList/v4/internal/fs.putDirectly
/home/runner/work/OpenList/OpenList/internal/fs/put.go:110
github.com/OpenListTeam/OpenList/v4/internal/fs.PutDirectly
/home/runner/work/OpenList/OpenList/internal/fs/fs.go:112
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).handlePut
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:405
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).ServeHTTP
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:74
github.com/OpenListTeam/OpenList/v4/server.ServeWebDAV
/home/runner/work/OpenList/OpenList/server/webdav.go:47
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDav.DownloadRateLimiter.func3
/home/runner/work/OpenList/OpenList/server/middlewares/limit.go:51
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDav.UploadRateLimiter.func2
/home/runner/work/OpenList/OpenList/server/middlewares/limit.go:28
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server.WebDAVAuth
/home/runner/work/OpenList/OpenList/server/webdav.go:151
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/OpenListTeam/OpenList/v4/server/middlewares.StoragesLoaded
/home/runner/work/OpenList/OpenList/server/middlewares/check.go:35
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/recovery.go:102
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.LoggerWithConfig.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/logger.go:249
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/context.go:185
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/gin.go:644
github.com/gin-gonic/gin.(*Engine).ServeHTTP
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.10.1/gin.go:600
net/http.serverHandler.ServeHTTP
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/server.go:3340
net/http.(*conn).serve
/opt/hostedtoolcache/go/1.25.0/x64/src/net/http/server.go:2109
runtime.goexit
/opt/hostedtoolcache/go/1.25.0/x64/src/runtime/asm_amd64.s:1693
配置文件内容(必填)
{
"force": false,
"site_url": "",
"cdn": "",
"jwt_secret": "xxx",
"token_expires_in": 48,
"database": {
"type": "sqlite3",
"host": "",
"port": 0,
"user": "",
"password": "",
"name": "",
"db_file": "data/data.db",
"table_prefix": "x_",
"ssl_mode": "",
"dsn": ""
},
"meilisearch": {
"host": "http://localhost:7700",
"api_key": "",
"index": "openlist"
},
"scheme": {
"address": "0.0.0.0",
"http_port": 5244,
"https_port": -1,
"force_https": false,
"cert_file": "",
"key_file": "",
"unix_file": "",
"unix_file_perm": "",
"enable_h2c": false,
"enable_h3": false
},
"temp_dir": "data/temp",
"bleve_dir": "data/bleve",
"dist_dir": "",
"log": {
"enable": true,
"name": "data/log/log.log",
"max_size": 50,
"max_backups": 30,
"max_age": 28,
"compress": false,
"filter": {
"enable": false,
"filters": [
{
"cidr": "",
"path": "/ping",
"method": ""
},
{
"cidr": "",
"path": "",
"method": "HEAD"
},
{
"cidr": "",
"path": "/dav/",
"method": "PROPFIND"
}
]
}
},
"delayed_start": 0,
"max_buffer_limitMB": -1,
"mmap_thresholdMB": 4,
"max_connections": 0,
"max_concurrency": 64,
"tls_insecure_skip_verify": false,
"tasks": {
"download": {
"workers": 5,
"max_retry": 1,
"task_persistant": false
},
"transfer": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"upload": {
"workers": 5,
"max_retry": 0,
"task_persistant": false
},
"copy": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"move": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"decompress": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"decompress_upload": {
"workers": 5,
"max_retry": 2,
"task_persistant": false
},
"allow_retry_canceled": false
},
"cors": {
"allow_origins": [
""
],
"allow_methods": [
""
],
"allow_headers": [
"*"
]
},
"s3": {
"enable": false,
"port": 5246,
"ssl": false
},
"ftp": {
"enable": false,
"listen": ":5221",
"find_pasv_port_attempts": 50,
"active_transfer_port_non_20": false,
"idle_timeout": 900,
"connection_timeout": 30,
"disable_active_mode": false,
"default_transfer_binary": false,
"enable_active_conn_ip_check": true,
"enable_pasv_conn_ip_check": true
},
"sftp": {
"enable": false,
"listen": ":5222"
},
"last_launched_version": "v4.2.1",
"proxy_address": ""
}
复现链接(可选)
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at internal/op/fs.go:709, then follow the upload path through internal/fs/put.go:110 and internal/fs/fs.go:112 from the WebDAV handler. Compare the handling of Baidu Netdisk responses for errno 10 and errno 31353, using the supplied logs and Baidu API documentation. Done means the cause is identified and Baidu uploads no longer fail in the reported cases, with verification for both error responses.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 38/100