How to get Rails 3.1's Cache store (FileStore) to work with Rack::Sendfile

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.

On Nov 5, 5:14pm, Ramon T. [email protected] wrote:

X-Sendfile to serve images. You can read my journey in a StackOverflow
question I posted http://stackoverflow.com/q/7980106/61018.

Not really answering your question, but I’ve handled this situation by
putting varnish in front of apache.

Fred

Isn’t Varnish for much busier sites though? I tried going this route but
I
thought that this might be overkill.

On Nov 6, 2:49am, Ramon [email protected] wrote:

Isn’t Varnish for much busier sites though? I tried going this route but I
thought that this might be overkill.

Well it does add one more thing to what your server runs but I found
it relatively easy to use. It does also have the benefit of cutting
ruby out of the picture completely when serving assets.

Fred