how can I use Apache to serve static content for a RoR app when I have only .htaccess access (and can't add Apache modules) [on Dreamhost shared server]

Hi,

Are there any Rails/Apache guru's that might know if it's possible (and how) to have the ability for users to upload their content to my RoR application but then subsequent access to such static content would be:

   a) served by APACHE web server [to avoid the overhead of going via Rails], but    b) still want to have an authentication/authorisation check to occur before they can access the content

The constraint is I'm on http://dreamhost.com/ shared platform where I have only access to the Apache .htaccess file and I can't add my own Apache modules.

   http://wiki.dreamhost.com/Apache    http://wiki.dreamhost.com/Htaccess    http://wiki.dreamhost.com/KB_/_Unix_/_.htaccess_files

thanks

(bump - still really interested in response if someone is knowable in this area)

Greg,

It sounds like you have a contradicting desire here. You say you want the uploads to be served directly by the Apache server (so you don't have Rails touching it), but you still want some form of authentication to make sure people can access it (which I imagine is what your Rails app is doing).

The overhead from processing a Rails request is quite minimal, especially is you're just doing some sort of user authentication and not some complex query/data gathering. My recommendation would be to use something like Paperclip (Companies like yours create meaningful solutions with thoughtbot paperclip) to help you upload files to your webserver, but protect access by serving the files through a Rails controller (something like this: http://www.therailsway.com/2009/2/22/file-downloads-done-right).

And again, if you're really, really concerned about your server overhead (like you'll be getting tens of thousands of requests per hour), you can always move some of this logic into Rails Metal to decrease the overhead, but, again, it's unlikely that you'll need to do so.

-Casey

thanks Casey - you no doubt correct :slight_smile: I'll run with your suggested 'don't over-engineer' concept...

Note that the X-Sendfile method in the linked article is only supported by an Apache module, which doesn't appear to be installed on the default DH config. So you're back where you started...

I'd recommend contacting DH support - I've never worked with them, but the support at Site5 has always been willing to install gems / Apache modules that were standard.

--Matt Jones

thanks Matt