On 27 Jun 2011, at 04:56, Shanison wrote:
Hi William,
Thank you very much for your detailed explanation and suggestion. This
is very helpful. For my case, actually it is for railover, so I think
I have to use rSync or write an extension that money patch the asset
manager, where upon any files uploaded to the server, I can do a
synchronization.
This is a bit trouble though. We have also thought of storing all
assets in the db instead. Synchronization of db is much easier and
efficient. But this means that we have to money patch the asset
manager again to make it store in db instead of file system.
That would probably be easier to code: it's just a different paperclip storage
module. See eg.
http://patshaughnessy.net/2009/4/14/database-storage-for-paperclip-rewritten-to-use-a-single-table
but it doesn't feel like a very appealing solution. You would miss out on a lot
of server-side optimisation: delivering static files is always the way to go if
you can.
It should be fairly easy to trigger a script from the asset manager. Again,
it's not our code but the behaviour of Paperclip that you need to change. Have
a look at the flush_writes and flush_deletes methods in
Paperclip::Storage::Filesystem. If I was doing this I think I'd add
:after_storage and :after deletion callbacks.
best,
will