Skip to content

[BUG] webdav无法为天翼云盘客户端上传.config后缀文件,且错误后产生大量的.transfer文件 #2852

Description

@haohaoget

Please confirm the following

  • I have read and agree to AGPL-3.0 Section 15 .
    The program is provided "as is" without any warranties; you bear all risks of using it.

  • I have read and agree to AGPL-3.0 Section 16 .
    The copyright holders and distributors are not liable for any damages resulting from the use or inability to use the program.

  • I confirm my description is clear, polite, helps developers quickly locate the issue, and complies with community rules.

  • I have read the OpenList documentation.

  • I confirm there are no duplicate issues or discussions.

  • I confirm this is an OpenList issue, not caused by other reasons (such as network, dependencies, or operation).

  • I believe this issue must be handled by OpenList and not by a third party.

  • I confirm this issue is not fixed in the latest version.

  • I have not read these checkboxes and therefore I just ticked them all, Please close this issue.

OpenList Version (required)

v4.2.3

Storage Driver Used (required)

天翼云盘客户端

Bug Description (required)

群晖cloud sync通过webdav连接openlist的天翼云盘客户端,在上传.config后缀的文件时报错未找到远程文件,但是手动上传.config结尾文件无报错。使用阿里云盘同样方式挂载和上传无错误。
同时在观察到天翼云盘对应文件夹下会出现大量的.transfer文件(用官方客户端需要删除很久),能否错误后自动删除.transfer文件
cloud sync上传失败:
Image

Image 天翼云盘对应文件夹下大量(几千个)的.transfer文件: Image

Logs (required)

github.com/OpenListTeam/OpenList/v4/internal/op.Get
/home/runner/work/OpenList/OpenList/internal/op/fs.go:213
github.com/OpenListTeam/OpenList/v4/internal/fs.get
/home/runner/work/OpenList/OpenList/internal/fs/get.go:37
github.com/OpenListTeam/OpenList/v4/internal/fs.Get
/home/runner/work/OpenList/OpenList/internal/fs/fs.go:44
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).handlePropfind
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:734
github.com/OpenListTeam/OpenList/v4/server/webdav.(*Handler).ServeHTTP
/home/runner/work/OpenList/OpenList/server/webdav/webdav.go:84
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.12.0/context.go:192
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.12.0/context.go:192
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.12.0/context.go:192
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/recovery.go:90
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/context.go:192
github.com/gin-gonic/gin.LoggerWithConfig.func1
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/logger.go:282
github.com/gin-gonic/gin.(*Context).Next
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/context.go:192
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/gin.go:722
github.com/gin-gonic/gin.(*Engine).ServeHTTP
/home/runner/go/pkg/mod/github.com/gin-gonic/gin@v1.12.0/gin.go:672
net/http.serverHandler.ServeHTTP
/opt/hostedtoolcache/go/1.26.4/x64/src/net/http/server.go:3311
net/http.(*conn).serve
/opt/hostedtoolcache/go/1.26.4/x64/src/net/http/server.go:2073
runtime.goexit
/opt/hostedtoolcache/go/1.26.4/x64/src/runtime/asm_amd64.s:1771
[GIN] 2026/07/27 - 07:48:03 | 404 | 395.404µs | 127.0.0.1 | PROPFIND "/dav/189/path/藏.exe.config"
�[33mWARN�[0m[2026-07-27 07:48:15] failed get /189/path/藏.exe.config: object not found
[GIN] 2026/07/27 - 07:48:15 | 201 | 48.47s | 127.0.0.1 | PUT "/dav/189/path/藏.exe.config"
�[33mWARN�[0m[2026-07-27 07:48:15] failed get /189/path/藏.exe.config: object not found
�[31mERRO�[0m[2026-07-27 07:48:15] PROPFIND /dav/189/path/藏.exe.config object not found

Configuration File Content (required)

{
  "force": false,
  "site_url": "/",
  "cdn": "",
  "jwt_secret": "vXc0XTC95filMV",
  "token_expires_in": 48,
  "database": {
    "type": "sqlite3",
    "host": "",
    "port": 0,
    "user": "",
    "password": "",
    "name": "",
    "db_file": "/volume3/@appdata/openlist/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": 5255,
    "https_port": -1,
    "force_https": false,
    "cert_file": "",
    "key_file": "",
    "unix_file": "",
    "unix_file_perm": "",
    "enable_h2c": false,
    "enable_h3": false
  },
  "temp_dir": "/volume3/@appdata/openlist/temp",
  "bleve_dir": "/volume3/@appdata/openlist/bleve",
  "dist_dir": "",
  "log": {
    "enable": true,
    "name": "/volume3/@appdata/openlist/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,
  "auto_memory_limit": 4,
  "min_free_memory": 0,
  "max_block_limit": 0,
  "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"
  },
  "mcp": {
    "enable": false
  },
  "last_launched_version": "v4.2.3",
  "proxy_address": ""
}
Image Image Image

Reproduction Link (optional)

No response

AI Generated Content (optional)

No response

Metadata

Metadata

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions