Incompatibility with RUFH protocol clients

Hi, I’m an Immich developer trying to improve the Cloudflare Tunnel experience for Immich. As a way to back up larger assets while respecting the 100MiB size limit, I’ve implemented the IETF-proposed RUFH spec supported by iOS’s URLSession client. This protocol allows clients to resume interrupted uploads when resumability can be negotiated with the server.

However, as clients still indicate the Content-Length of the full resource, it results in an immediate 413 response with no upload progress. It would be ideal to a) allow streaming the request body to the server up to the size limit and b) allow the server to respond to the client in this case. The goal is to receive the first 100MiB of the body and let the client know it can resume with the next chunk of data. Otherwise, it seems the major RUFH clients are simply unable to work well with Cloudflare services affected by this limit. For more context, this is the branch implementing the RUFH server: https://github.com/immich-app/immich/pull/22385
GitHub
This is a PR to support resumable uploading using an in-built implementation of the IETF-proposed RUFH protocol. It will only implement the server side as client support is better addressed in sepa...
Was this page helpful?