alist
alist copied to clipboard
HTTP2 TE header not supported
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 asDependencies
orOperational
). - [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
Thanks for opening your first issue here! Be sure to follow the issue template!
已知以下 Driver 存在这个问题
- AliyundriveShare
- Onedrive
已知以下 Driver 无此问题
- AList V3
- Aliyundrive
其它 Driver 未测试
Update 测试了直接 curl Onedrive 的链接,加上 TE 这个 Header 没有报错。
应该是 alist 没有处理好这个 Header。
you can edit https://alist.nn.ci/config/preview.html#proxy-ignore-headers to ignore the specific header by youself.
@Xhofe I haved changed proxy-ignore-headers:
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: