Jeremy,

I manage a Scalr.net account where there are multiple websites and one
of them uses Joomla. The farm uses www, app, and mysqllvm roles. The
load on the farm fluctuates so a new app server gets created a few
times per week. So I decided to store files in S3. However, I did not
want the S3 files to be open to the public. I wanted them served from
S3 through the app role to avoid additional bandwidth fees and to
prevent unauthorized access since some of the files are marked private
by the user.

Since Joomla stores uploaded files (mainly images, text, and pdf
files) in a known parent directory tree, it seemed the easiest thing
to do was copy the directories periodically to S3. Then use a
rewritemap to check for the files in S3 if they were not found
locally.

I was concerned about this 100 bucket limit. I get confused about what
is a bucket and what is an object in S3. Anyway, there are hundreds of
files in S3 now. The cron job stores them in the directory tree path.
(Not really true since the 'path' is just a key to the object in S3.)

The bash backup script is a cron job that runs every few minutes. The
perl rewritemap program is run from Apache on the app role.

The only problem I have with this setup is that some users post large
numbers of files and if the cron job is still running when it is time
to call it again, I receive error messages.

As a first refactor, I modified the cron script to delete all local
files after they are uploaded to S3. As a second refactor, I need to
modify the cron script to exit the new job if the script is still
running, but have not done this yet.

So now, all user uploaded files are served from S3 via an Apache
rewritemapping program in perl, there are several hundred files in S3,
the files are not open to the public for access, and I have not had
any user complaints about slow access time. I use one of the websites
and have not noticed any significant latency.

Maybe this approach will be helpful.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"scalr-discuss" 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/scalr-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to