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.
The current implementation for storing file uploads is sub sub-optimal. If a user uploads a large file (say multiple GBs in size) the memory usage of the application will rise very quickly, which is made worse with larger files and/ or more users active at once. This can lead issues for other apps running on the same physical server or even the app itself.
My proposed change is to use File.tempfile instead of IO::Memory for storing the file. To prevent the server from running out of storage from clutter, the controller deletes the file when it is cleaned up by GC only if the file hasnt been moved. i.e. its safe to move them for long term storage.
Ive also changed the body getter to provide backwards compatibility, but its less than optimal as it creates a new io.