Hey - I need your input regarding a problem I’ve come across. I’ll first
explain what the problem is, and what I think the solution is. If I
misunderstood how things work, please let me know.
The problem
I’m using Dragonfly (on-the-fly file processing) to serve images.
Dragonfly
uses Rack::Cache to cache the processed images so subsequent requests
are
served by Rack::Cache. The problem lies in Rack::Cache getting too busy
serving images. I thought the fix would be to let Rack::Cache use
Apache’s
X-Sendfile to serve images. You can read my journey in a StackOverflow
question I posted http://stackoverflow.com/q/7980106/61018.
The solution
The solution would be to enable whatever’s needed to get Rack::Cache to
serve files using X-Sendfile through Rack::Sendfile. After poking around
Rack::Cache, I found out that none of the Rack::Cache Entitystores are
used
– what’s being used is Rails’ own storage
solutionhttps://github.com/rails/rails/blob/3-1-stable/activesupport/lib/active_support/cache/file_store.rb
.
Is there a reason that FileStore doesn’t support Rack::Sendfile at the
moment (why it uses Marshal)? What would be the easiest way to get to
what
I need? Can I just tell Rails to use Rack::Cache’s Disk entitystore? If
not, what do you guys think of letting the body of the response of *
FileStore* (yes, a bit of a mouthful) to respond to to_path
?
Thanks!
Ramon T.