alist icon indicating copy to clipboard operation
alist copied to clipboard

HTTP2 TE header not supported

Open greatbody opened this issue 2 years ago • 4 comments

Please make sure of the following things

  • [X] I have read the documentation.
  • [X] I'm sure there are no duplicate issues or discussions.
  • [X] I'm sure it's due to alist and not something else(such as Dependencies or Operational).
  • [X] I'm sure I'm using the latest version

Alist Version / Alist 版本

v3.8.0

Driver used / 使用的存储驱动

Onedrive

Describe the bug / 问题描述

挂载 Onedrive 使用 Ubuntu 的 davfs2 挂载 webdav,报错:

注意 日志中的链接经过处理,但是链接本身是可以打开的。

alist log

ERRO[2023-01-29 08:18:45] GET /dav/xxx/README2.md Get "https://xxx.com/personal/xxx/_layouts/15/download.aspx?UniqueId=165ea0a0-e136-4a53-8298-55ad17892ce2&Translate=false&tempauth=eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0.eyDAwMDAwMy0wMDAwLTBmZjEtY2UwMC0wMDAwMDAwMDAwMDAvdDgzODYtbXkuc2hhcmVwb2ludC5jb21AZDlmZGRkMjAtMDhlYi00MzEyLWE4MjQtZDk0NzQ2YmJkYmNmIiwiaXNzIjoiMDAwMDAwMAwMC0wZmYxLWNlMDAtMDAwMDAwMDAwMDAwIiwibmJmIjoiMTY3NDk4MDMyNCIsImV4cCI6IjE2NzQ5ODM5MjQiLCJlbmRwb2ludHVybCI6InJpZG1yQW9sdjVSQ04rKzgzMEJFTmhERy90NGY2U044WDdsRGNmOWtoVWs9IiwiZW5kcG9pbnR1cmxMZW5ndGgiOiIxNjAiLCJpc2xvb3BiYWNrIjoiVHJ1ZSIsImNpZCI6Ik5EaGtaVFF3WVdRdE16YzJNeTAwTXpNekxUbGxORGN0TlRVME5qTXpPRFUyWVRWbSIsInZlciI6Imhhc2hlZHByb29mdG9rZW4iLCJzaXRlaWQiOiJaRFJpTW1aaFltTXROek0yTmkwMFpUZGpMVGd5TXpJdFlqSmtOREkwTkRNNVpEY3ciLCJhcHBfZGlzcGxheW5hbWUiOiJvbmVkcml2ZS1hcGkiLCJnaXZlbl9uYW1lIjoicnVpIiwiZmFtaWx5X25hbWUiOiJzdW4iLCJzaWduaW5fc3RhdGUiOiJbXCJrbXNpXCJdIiwiYXBwaWQiOiI3YmUyNzViNS1lMmMwLTRjN2QtODY4Zi1jYzMyM2U4MGJiNDIiLCJ0aWQiOiJkOWZkZGQyMC0wOGViLTQzMTItYTgyNC1kOTQ3NDZiYmRiY2YiLCJ1cG4iOiJncmVhdGJvZHlAdDgzODYub25taWNyb3NvZnQuY29tIiwicHVpZCI6IjEwMDMyMDAyMUYzNzM2QzciLCJjYWNoZWtleSI6IjBoLmZ8bWVtYmVyc2hpcHwxMDAzMjAwMjFmMzczNmM3QGxpdmUuY29tIiwic2NwIjoiYWxsZmlsZXMud3JpdGUiLCJ0dCI6IjIiLCJ1c2VQZXJzaXN0ZW50Q29va2llIjpudWxsLCJpcGFkZHIiOiI0MC4xMjYuNC40MCJ9.Rm5LczBnT1dpQkZmWUFRYTJyZjU4TVNYb3hVaHRUTUZMamgvWXhhSUF2VT0&ApiVersion=2.0": http2: invalid Connection request header: ["TE"]
[GIN] 2023/01/29 - 08:18:45 | 500 |  1.053827585s |     10.10.10.12 | GET      "/dav/xxx/README2.md"

davfs2 log

Jan 29 08:18:44 ubuntu-nfs mount.davfs: SELECT: 1
Jan 29 08:18:44 ubuntu-nfs mount.davfs: FUSE_LOOKUP:
Jan 29 08:18:44 ubuntu-nfs mount.davfs:   p 0x559d61a54050, OneDrive-xxx
Jan 29 08:18:44 ubuntu-nfs mount.davfs: lookup /dav/OneDrive-xxx
Jan 29 08:18:44 ubuntu-nfs mount.davfs: RET: Success
Jan 29 08:18:44 ubuntu-nfs mount.davfs: SELECT: 1
Jan 29 08:18:44 ubuntu-nfs mount.davfs: FUSE_LOOKUP:
Jan 29 08:18:44 ubuntu-nfs mount.davfs:   p 0x559d61a53eb0, README2.md
Jan 29 08:18:44 ubuntu-nfs mount.davfs: lookup /dav/OneDrive-xxx/README2.md
Jan 29 08:18:44 ubuntu-nfs mount.davfs: RET: Success
Jan 29 08:18:44 ubuntu-nfs mount.davfs: SELECT: 1
Jan 29 08:18:44 ubuntu-nfs mount.davfs: FUSE_OPEN:
Jan 29 08:18:44 ubuntu-nfs mount.davfs:   n 0x559d61a80160, f 0100000
Jan 29 08:18:44 ubuntu-nfs mount.davfs:   pid 2142, mode 00
Jan 29 08:18:44 ubuntu-nfs mount.davfs: open /dav/OneDrive-xxx/README2.md
Jan 29 08:18:44 ubuntu-nfs mount.davfs: Running pre_send hooks
Jan 29 08:18:44 ubuntu-nfs mount.davfs: compress: Initialization.
Jan 29 08:18:44 ubuntu-nfs mount.davfs: Sending request headers:#012GET /dav/OneDrive-xxx/README2.md HTTP/1.1#015#012User-Agent: davfs2/1.6.1 neon/0.32.2#015#012Connection: TE#015#012TE: trailers#015#012Host: 10.10.10.11:5244#015#012Accept-Encoding: gzip#015#012Authorization: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx#015#012#015
Jan 29 08:18:44 ubuntu-nfs mount.davfs: Sending request-line and headers:
Jan 29 08:18:44 ubuntu-nfs mount.davfs: Request sent; retry is 1.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [status-line] < HTTP/1.1 500 Internal Server Error#015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [hdr] Etag: "173eb99f013b38001c"#015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Header Name: [etag], Value: ["173eb99f013b38001c"]
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [hdr] Date: Sun, 29 Jan 2023 08:18:45 GMT#015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Header Name: [date], Value: [Sun, 29 Jan 2023 08:18:45 GMT]
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [hdr] Content-Length: 21#015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Header Name: [content-length], Value: [21]
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [hdr] Content-Type: text/plain; charset=utf-8#015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Header Name: [content-type], Value: [text/plain; charset=utf-8]
Jan 29 08:18:45 ubuntu-nfs mount.davfs: [hdr] #015
Jan 29 08:18:45 ubuntu-nfs mount.davfs: End of headers.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Running post_headers hooks
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Reading 21 bytes of response body.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Got 21 bytes.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Running post_send hooks
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Request ends, status 500 class 5xx, error line:#012500 Internal Server Error
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Running destroy hooks.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: Request ends.
Jan 29 08:18:45 ubuntu-nfs mount.davfs: RET: Input/output error

初步分析及修复建议

根本原因是 Onedrive 的服务端不支持 TE 这个 Header。 目前能做的就是在 alist 端进行处理,当发现 webdav 客户端发来了 TE 这个 Header,就移除掉,再发给 Onedrive。

Reproduction / 复现链接

http://alist.xiaoya.pro/

Logs / 日志

No response

greatbody avatar Jan 29 '23 08:01 greatbody

Thanks for opening your first issue here! Be sure to follow the issue template!

welcome[bot] avatar Jan 29 '23 08:01 welcome[bot]

已知以下 Driver 存在这个问题

  • AliyundriveShare
  • Onedrive

已知以下 Driver 无此问题

  • AList V3
  • Aliyundrive

其它 Driver 未测试

greatbody avatar Jan 29 '23 08:01 greatbody

Update 测试了直接 curl Onedrive 的链接,加上 TE 这个 Header 没有报错。

应该是 alist 没有处理好这个 Header。

greatbody avatar Jan 29 '23 09:01 greatbody

you can edit https://alist.nn.ci/config/preview.html#proxy-ignore-headers to ignore the specific header by youself.

xhofe avatar Jan 29 '23 09:01 xhofe

@Xhofe I haved changed proxy-ignore-headers: image But when I used winscp to access my alist web, I still got the Error in log:

  ERRO[2023-02-11 03:40:23] GET /dav/kuake/test/ss.txt Get "https://dl-pc-sz.drive.quark.cn/... : **http2: invalid Connection request header: ["TE"]**
  [GIN] 2023/02/11 - 03:40:23 | 500 |  156.109813ms |      172.17.0.1 | GET      "/dav/kuake/test/ss.txt"

winscp error: image

xuegao456 avatar Feb 11 '23 03:02 xuegao456