Don’t use filesystems for storage, unless it is a distributed filesystem (AWS S3)
Don’t involve your app server in long requests/responses. Slow clients may block your server and cause longer request queues (depends on implementation).
If you want to receive an upload get it through S3 with some work on the client side.
If you want to send a huge response, either stream it using a streaming capability of your app server, or generate it using a background job that stores it finally on S3 and sends the direct link when done through the app using push or through email.