How do you protect files in RoR

I’m mostly interested in mp3 files. I’m supposed to build a music store
app. Where should you keep files (s3?). And what’s more important how do
you protect other people from using the same link? I guess you have to
generate it dynamically. Is there any other solution or maybe any plugin
available?

On Mar 27, 3:45 pm, Milan D. [email protected]
wrote:

I’m mostly interested in mp3 files. I’m supposed to build a music store
app. Where should you keep files (s3?). And what’s more important how do
you protect other people from using the same link? I guess you have to
generate it dynamically. Is there any other solution or maybe any plugin
available?

Something like X-Send-File (apache) or X-Accel-Redirect (nginx) allows
you to use apache/nginx to do the actual heavy work of transferring a
large file to the client, while still letting your rails app control
access. These both assume the file is on the same server as the one
running your instance of apache/nginx

Fred

Frederick C. wrote:

Something like X-Send-File (apache) or X-Accel-Redirect (nginx) allows
you to use apache/nginx to do the actual heavy work of transferring a
large file to the client, while still letting your rails app control
access. These both assume the file is on the same server as the one
running your instance of apache/nginx

Use Paperclip, and put the files on a shared mount that all of your
servers can
see. (If you cluster.)

Put the files in a folder named after a hash of today’s date + a salt -
a
password. Concatenate the date to the password and hash the whole thing,
then
write a cron that renames the folder every day.

Paperclip has an option to set the filesystem path dynamically, like
routes.rb.
Put the hash into this path, and serve the files freely. Nobody can
hot-link
them because the hash will change daily.


Phlip

You might be looking for this part of S3:

http://docs.amazonwebservices.com/AmazonS3/2006-03-01/index.html?S3_QSAuth.html

That will let you generate a URL that has an expiration date for a
particular file; you may also be able to use Amazon FPS to handle the
payment part of the system.


On a totally non-Rails related note, I’m still amazed at all the sites
that think an “mp3 store” will create lots of revenue. It may bring in
a little cash, but ultimately iTunes has a massive lock on the market.
See some figures here:

For 2008, iTunes generated roughly 85% of sales. The remaining 15%
includes virtually every other major digital download site (Yahoo,
Napster, Rhapsody, etc). The only thing that amazes me more than the
thousands of tiny mp3 stores is the constant VC attention to the
“MySpace music store” thing. What sane user would ever type their
credit card info into part of Myspace??

–Matt J.

On Mar 27, 11:45 am, Milan D. [email protected]