Send your files to the end user by streaming them from S3
Add the gem to your Gemfile and Bundle :
gem "s3streamer"
Install initializer file :
rails generate s3streamer:install
Edit the initializer file with your AWS S3 credentials and your bucket name,
and restart your server.
Note: You can avoid setting your bucket if you pass it directly to the
#stream_file
method options.
Now, you can use the #stream_file
method in your controllers.
def download
stream_file("file/key.ext")
end
It can also accept a Paperclip::Attachment
object. This method will
automatically add "content_type=xxx/xxx" to the Content-Disposition HTTP
response header.
def download
model = Model.find(params[:id])
stream_file(model.file)
end
There also are options that you can pass :
def download
stream_file("file/key.ext", {
name: "File name to be used.pdf",
content_type: "application/pdf",
bucket: "your_bucket"
})
end