New Discussion

Notifications

You’re not receiving notifications from this thread.

How to send a file to front-end from Rails server deployed in heroku ?

1
Rails

I have a Rails application with React in the front end and deployed in Heroku.

I am trying to send a file from the server to the browser side. I did saw the Rails "send_file" but it makes use of Rack::Sendfile middleware, which is not supported by Heroku.

To quote from Heroku's documentation:
"Heroku does not support the use of Rack::Sendfile. Rack::Sendfile usually requires that a front-end webserver like nginx or apache is running on the same machine as your app. This is not how Heroku is architected. Using the Rack::Sendfile middleware will cause your file downloads to fail, because it sends a body with a content length of 0."

And due to client requirements, I have to stick onto Heroku .
Please let me know of any works around for this.

Hi Abijith

Is there a good reason why your backend must "send" the file to your frontend?
I suppose what you would normally do in these cases is to make some kind of API which simply responds with the file in question. I believe that this could be done rather simple with respond_to (https://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to) instead of having to make a fully fledged API.

This solution should work regardless of which hosting provider you're using.

Mads

Join the discussion
Create an account Log in

Learning Ruby on Rails? Join our newsletter.

We won't send you spam. Unsubscribe at any time.