Gallery3:Modules:aws s3 - Gallery Codex
Personal tools

Gallery3:Modules:aws s3

From Gallery Codex

Revision as of 12:03, 20 January 2011 by Dmolavi (Talk | contribs) (Installation)


Synchronises Gallery 3 content with an Amazon S3 bucket for high traffic sites.


This module allows you to synchronise your Gallery content with Amazon Simple Storage Service (S3) for either backup or high traffic sites. It also supports (public content only at present) the use of Amazon CloudFront (CF) and the use of DNS CNAME's as opposed to Amazon's default S3/CF domain names (i.e; as opposed to or


This module may be downloaded from my website here or from here.

To install, extract the "aws_s3" folder from the zip file into your Gallery 3 modules folder. Afterwards log into your Gallery web site as an administrator and activate the module in the Admin -> Modules menu. Configure the module: Settings -> Amazon S3 page. You will be required to enter your Amazon S3 settings (Access Key, Secret Key, Bucket Name). Optionally, you can change the URL template below for use with CloudFront.

Known Issues

This module currently does not work with CloudFront and private/permission restricted content due to the Query String Authentication (QSA) signature differences between CF and S3.

There is an issue affecting the use of SSL to transfer data between G3 and S3. Suggested work-around for now is to simply disable SSL data transfers. This does not affect the use of SSL for G3 itself.

If you use filenames with odd characters (i.e; UTF-8 charset), or have characters such as spaces in the filenames, it will fail to upload them. This has been resolved in a development version of this module, and is available on request until the next version is released.

When moving items around within G3 from album to album, the module does not communicate the changes to the object structure in the S3 bucket, so items moved in G3 will no longer appear on the front-end as the requested item no longer exists in the bucket (it does, just in the wrong place). This issue has already been identified by myself and others via the forum thread here, and will be resolved in version 2.

An issue has also been reported with using the CoolIris slideshow with objects from S3. This is due to the flash requesting access to content from a URL that is not on the same domain as G3. This also affects the thumbnail preview in the Organize flash. There is a work-around for this, which is to use a Virtual Bucket, creating a CNAME in your domain name (i.e; ""), which should stop the cross-domain security features from kicking in, as this is technically "in-domain". If this is not your cup of tea, or you do not have access to a feature like this (or DNS access to your domain), a fix will be implemented in the future to allow requests from these flash elements to either proxy through the server to S3, or request the content from local storage instead.

Bucket Naming: Amazon reports best practices when Working with Amazon S3 Buckets. As such, there was a report that when a bucket was named with an underscore in it, the bucket became unavailable when using this module and the client reported 403 Forbidden when attempting to access the S3 bucket. Please keep this in mind when troubleshooting access issues to S3 via this module. Future versions of this module will validate this field for both existence and syntactically correctness.

This module (or rather the S3 library it depends on (and comes packaged with)) depends on the php5-curl extension either being loaded via extensions.ini or compiled into php with --enable-curl. If php5-curl is not installed, when attempting to syncronise your gallery contents with S3, it will hang on Emptying bucket contents with no indication to what's happening. This will be resolved in version 2 by preventing you activating the module without php5-curl installed.

Please report all other issues with this module on this module's official G3 thread here.`

Feature Requests

The list of feature requests below are lower priority than issues listed in Known Issues above. The features listed below may or may not ever make it into the module. It all depends on how much time I have available to incorporate these.

The ability to upload only certain images types to S3 (either for backup purposes or cost-saving purposes). (This feature will appear in v2)

The ability to use S3 for storage as well as access, and removing content from local storage for web hosts with limited disk space available. (This feature will appear in v3).

Change Log

26th Nov 2010 : Version 1 : Initial Release.