From c1c161d1b8d6802ad9c404c8157c95039a306b44 Mon Sep 17 00:00:00 2001 From: Caddy on hubris Date: Tue, 12 May 2026 18:10:40 +0200 Subject: [PATCH] Strip IETF resumable-upload headers for Seafile iOS app (LXC 125) iOS Seafile Pro 4.0.2 negotiates resumable uploads via Upload-Draft-Interop-Version: 6, but Seafile-fileserver does not understand the protocol and never returns the expected interim response; the iOS client then cancels the HTTP/2 stream after ~60s and the upload (or library-create POST) appears to fail. Strip the negotiation headers so the client falls back to normal multipart upload, and bump upstream timeouts for large transfers. --- Caddyfile | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Caddyfile b/Caddyfile index 77d0ccc..57e69e5 100644 --- a/Caddyfile +++ b/Caddyfile @@ -181,7 +181,6 @@ files.hubris.network { dns ionos {env.IONOS_AUTH_API_TOKEN} } encode zstd gzip - # Seafile desktop client uploads large files; bump the body cap. request_body { max_size 10GB } @@ -189,5 +188,18 @@ files.hubris.network { header_up X-Forwarded-Proto https header_up X-Forwarded-Host {host} header_up Host {host} + # Seafile iOS Pro app (>=4.0) speaks the IETF Resumable Uploads draft; + # the bundled seafile-fileserver does not. Strip the negotiation headers + # so the client falls back to a normal multipart upload. + header_up -Upload-Draft-Interop-Version + header_up -Upload-Complete + header_up -Upload-Offset + header_up -Upload-Length + transport http { + dial_timeout 30s + read_timeout 1h + write_timeout 1h + } + flush_interval -1 } }