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.
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 solution.
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 Tayag