Documentation

How-tos / How to configure for AmazonS3

Amazon S3 support is only available for Enterprise License customers.

Step 1

Make sure you have added AmazonS3 to the plugins list like this:

$moxieManagerConfig['general.plugins'] = 'Favorites,History,Uploaded,AmazonS3';
<!-- Make sure the AmazonS3 plugin is present in your web.config -->
<plugins>
<plugin type="MoxieManager.Plugins.AmazonS3.Plugin" />
<!-- more plugins here -->
</plugins>
Step 2

Configure your bucket information in config file.

$moxieManagerConfig['amazons3.buckets'] = array(
	'mybucketname' => array(
		'publickey' => '',
		'secretkey' => ''
	)
);
<add key="amazons3.buckets">
<bucket name="mybucketname" publickey="" secretkey="" />
</add>

Optional: You might also need to configure 'urlprefix' in your bucket, it should be "http://s3.amazonaws.com" or similar, without the bucket name.

Get your publickey and secretkey from Amazon S3 admin interface.

Step 3

Add your bucket to the rootpath configuration. Please note that bucketnames can only be a-z 0-9 and lowercase chars.

$moxieManagerConfig['filesystem.rootpath'] = 's3://mybucketname';
<add key="filesystem.rootpath" value="s3://mybucketname" />

Note that the name must match with what you called your bucket in the buckets config in Step 2.

It is also possible to have many rootpath, if you wish to list local folder as well as Amazon S3. Check out filesystem.rootpath config for more information about that.

List of bucket options

Option Description
publickey The public key that you get from the Amazon S3 service.
secretkey The secret key that you get from the Amazon S3 service.
urlprefix Url prefix to add infront of the urls when selecting files this can for example be http://mycustom.domain or //mycustom.domain. If you do not have a custom domain, you will need to configure the bucketname into the normal s3 url.
cache-control Enables you to control how the files are to be cached in the users browser when the request the file. The values that can be specified for this option can be found in the HTTP RFC.
endpoint Enables you to configure a specific endpoint for the API calls this can be an URL to a specific region or a custom domain.

Example of EU region bucket with custom domain

'<your bucket>' => array(
'publickey' => '<your public key>',
'secretkey' => '<your secret key>',
'urlprefix' => 'http://mycustomdomain/',
'endpoint' => 's3-eu-west-1.amazonaws.com'
)
<bucket name="<your bucket>"
publickey="<your public key>"
secretkey="<your secret key>"
urlprefix="http://mycustomdomain/"
endpoint="s3-eu-west-1.amazonaws.com"
/>