Seamlessly integrates assets (including themes folder) along with css and js. Enabling CloudFront is simply a config change.
Seamlessly integrates assets,theme assets, css and js with S3 - with optional CloudFront CDN.
silverstripe/framework: ^3.5.*
silverstripe/cms: ^3.5.*
aws/aws-sdk-php: ^3.18
To install, run below from root of SilverStripe installation
> composer require fspringveldt/ss-easy-s3
http://your-site-url?flush=1 once composer is complete the flush the manifest.
Once installed and configured, head on over to Amazon, create an account and bucket. Below are some resources you can use to assist during this process.
Once your Amazon info is sorted, you'll need the following info from the Amazon console:
...which is then input into your mysite the config file as:
S3Facade:
config:
dev:
key:
secret:
region:
bucket:
url:
distribution-id:
test:
key:
secret:
region:
bucket:
url:
distribution-id:
live:
key:
secret:
region:
bucket:
url:
distribution-id:
NB: You can setup multiple configs per environment
. A simple flush should complete your setup.
This module will automagically re-write all your URL's to point to the resources from either the S3 Bucket or CloudFront url you specified.
You now also have the option to delete local files and only keep those in S3, which is switched off by default. To enable this functionality, do the following:
Image:
keepLocal: false
*/5 * * * * [path-to-php-binary] [path-to-application]/framework/cli-script.php dev/build
An example on ubuntu: */5 * * * * /usr/bin/php /var/www/example/framework/cli-script.php dev/build
There is also a handy tool which will upload entire directories to your S3 bucket blisteringly fast. You can specify which directories to upload via the _ config/config.yml file by adding more entries to the migrationFolders
property. The assets folder is added by default.
Download certificate file
Copy it inside ss-easy-s3/
root directory (assuming ss-easy-s3
folder is inside project root directory)
Add some additional config below inside the config array()
in setupS3Client()
and setupCloudFrontClient()
method in code/classes/S3Facade.php
file
$array = array(
'version' => ...,
'region' => ...,
'credentials' => ...,
// add these lines
'scheme' => 'http',
'http' => [
'verify' => '../ss-easy-s3/cacert.pem'
]
);
Refresh the page and test uploading image (in my case using Files
page in CMS Admin)
*Note: You should disable all debug command such as Debug::show
and var_dump()
References:
Module rating system helping users find modules that are well supported. For more on how the rating system works visit Module standards
Score not correct? Let us know there is a problem