while reading through the agile web development book, i was kind of surprised to see that uploaded files were stored in the database. maybe this isn''t anything new, but it was the first time i had seen file uploads handled this way. it seems like that''s the way most of the articles and tutorials i''ve found have shown to do it. why is this? is there something better about storing the file in the database, or is it for convenience? sorry if this has been posted a hundred times before, there was nothing i could find on why most rails apps handle files this way. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
On 9/18/06, Josh <jjkiesch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > while reading through the agile web development book, i was kind of > surprised to see that uploaded files were stored in the database. maybe > this isn''t anything new, but it was the first time i had seen file > uploads handled this way. it seems like that''s the way most of the > articles and tutorials i''ve found have shown to do it. why is this? is > there something better about storing the file in the database, or is it > for convenience? > > sorry if this has been posted a hundred times before, there was nothing > i could find on why most rails apps handle files this way.I don''t know that I''d say *most* rails apps handle files this way. Certainly there are some situations where this is done, but I would hazzard a guess that this is a minority of times. ActsAsAttachment defaults to filesystem, but gives the option of db storeage. I guess it''s up to personal preference. There have been some very large threads on the rails list a while ago regarding this that went into a lot of detail. A very quick search at www.ruby-forum.com turned up http://www.ruby-forum.com/topic/54239#33224 http://www.ruby-forum.com/topic/71824#100751 Hope that helps --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Daniel N wrote:> > > On 9/18/06, *Josh* <jjkiesch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org <mailto:jjkiesch-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>> > wrote: > > > while reading through the agile web development book, i was kind of > surprised to see that uploaded files were stored in the database. > maybe > this isn''t anything new, but it was the first time i had seen file > uploads handled this way. it seems like that''s the way most of the > articles and tutorials i''ve found have shown to do it. why is this? is > there something better about storing the file in the database, or > is it > for convenience? > > sorry if this has been posted a hundred times before, there was > nothing > i could find on why most rails apps handle files this way. > > > I don''t know that I''d say *most* rails apps handle files this way. > Certainly there are some situations where this is done, but I would > hazzard a guess that this is a minority of times. > > ActsAsAttachment defaults to filesystem, but gives the option of db > storeage. I guess it''s up to personal preference. > > There have been some very large threads on the rails list a while ago > regarding this that went into a lot of detail. > > A very quick search at www.ruby-forum.com <http://www.ruby-forum.com> > turned up > > http://www.ruby-forum.com/topic/54239#33224 > > http://www.ruby-forum.com/topic/71824#100751 > > Hope that helps >I imagine the points if discussion are: 1. If it''s in the DB, it scales well - when you move to a multi-server architecture for hosting your application, the data from the DB will be available to all processes.. whereas you may have some concerns if the file you want is stored on the file system of one server. 2. If it''s in the DB, it''s very easy to protect access to the data by using a controller. It''s slightly (not much) more complicated if you''re storing it on the file system. 3. I imagine that if you do not want to protect access to your file (i.e., it is stored in a publicly accessible location), then it may be slightly faster to serve it up as ''static content'' by getting the webserver to send it out rather than sending it through the application server. However, I may be wrong in all the points above.. :D Cheers Mohit. --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
> > ActsAsAttachment defaults to filesystem, but gives the option of db > > storeage. I guess it''s up to personal preference.I actually wrote it for db-backed storage because file_column did the file stuff. In my experience, it''s usually better to keep the files on disk unless you''re talking really small or dynamic files. The rails send_file() method will stream larger files in chunks, rather than requiring you to load the whole file in memory and send it. Private files should of course be saved outside of the public path too. If you are using db files, you could employ some kind of page caching that writes the asset to the hard drive in some cached location the first time and serves that on future requests. -- Rick Olson http://weblog.techno-weenie.net http://mephistoblog.com --~--~---------~--~----~------------~-------~--~----~ 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 rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---