Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Just like I tried to optimise uploads at elixir-plug/plug#1279, now I want to contribute a bit downloading big files over SSL, as I don't want my server to get OOMed :)
The default chunk-size is 8MB, for no special reason TBH. Ranch uses 8MB if no value is provided (https://github.com/ninenines/ranch/blob/d272ca07524a61000324b2b7f7ad1ce9b2dd1487/src/ranch_transport.erl#L126C4-L126C11), but it also allows to pass opts to the underlying
sendfile. Heresendfiletakes only four parameters and it just seemed a bit too much to extend the transport interface with asendfiletaking an extra argument with a chunk_size (?)Also tweaked the tests to use files in binary mode, as they also tend to be more memory efficient.