On Sun, Oct 18, 2009 at 01:10, Mohit Sindhwani <[email protected]> wrote: > > Hi, I'm sorry if this is slightly OT, but I'm trying to find a way to do > the following. I have a bunch of processes that generate regular update > files. Each file may be between 100KB - 4MB in size. > > On the other side, I have people who want to pick up the most recent > version of this file. So, I need to give them a fixed URL to the file. > When they make a request, they would like to get only the most recent > file. Initially, I thought that something like FTP would work, but I > run into the problem that if a request comes in when the file is being > updated, the client may not get a valid file. > > The other extreme is to have an upload controller and a download > controller and then store the file in a database, so that it can be > served up through the database. The database serializes it so that I > don't have to worry. But, since the files can be large, it seems a bit > of a waste to use this approach. > > Is there a better way? Anything that you would recommend? > > Thanks, > Mohit. >
A common approach used for something like this is to have a "current" symlink, and update it, whenever you have a newer file. Eg: $ touch some-file-v1 $ ln -s some-file-v1 current-version $ touch some-file-v2 $ ln -sf some-file-v2 current-version If you give people the URL to "current-version", and only update the symlink after you've created the new version, then they won't be downloading a file before it's completely written out to disk. We use the "store the files in the DB" approach for a few of our projects at $work, and that works pretty well for us. It's not really a waste, especially if you plan on having multiple "physical" webservers. -Jacob --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---

