PHPackages                             fspringveldt/ss-easy-s3 - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. fspringveldt/ss-easy-s3

ActiveSilverstripe-module[File &amp; Storage](/categories/file-storage)

fspringveldt/ss-easy-s3
=======================

Seamlessly integrates assets (including themes folder) along with css and js. Enabling CloudFront is simply a config change.

64.8k4[3 issues](https://github.com/fspringveldt/ss-easy-s3/issues)PHPCI failing

Since Jul 9Pushed 5y ago2 watchersCompare

[ Source](https://github.com/fspringveldt/ss-easy-s3)[ Packagist](https://packagist.org/packages/fspringveldt/ss-easy-s3)[ RSS](/packages/fspringveldt-ss-easy-s3/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Amazon S3 bucket integration
============================

[](#amazon-s3-bucket-integration)

Seamlessly integrates assets,theme assets, css and js with S3 - with optional CloudFront CDN.

Minimum requirements
--------------------

[](#minimum-requirements)

```
silverstripe/framework: ^3.5.*
silverstripe/cms: ^3.5.*
aws/aws-sdk-php: ^3.18

```

Installation and Setup
----------------------

[](#installation-and-setup)

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.

- [Using CloudFront with Amazon S3](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/MigrateS3ToCloudFront.html)
- [Getting Started with CloudFront](http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.html)
- [Syncing data with Amazon S3](http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#syncing-data-with-amazon-s3)
- [For S3 Regions!! - This one can get you hahaha](http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)

Once your Amazon info is sorted, you'll need the following info from the Amazon console:

- key
- secret
- region
- bucket
- url
- distribution-id

...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.

### Deleting local files

[](#deleting-local-files)

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:

1. Add this config entry

```
Image:
    keepLocal: false
```

2. Then schedule the task called RemoveLocalCopies to run at a comfortable interval to remove these files. An example cron entry reflects below, replacing everything in square brackets with correct values

```
*/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`

Migrate to S3 build-task
------------------------

[](#migrate-to-s3-build-task)

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*](_config/config.yml) file by adding more entries to the `migrationFolders` property. The assets folder is added by default.

Working with local environment
------------------------------

[](#working-with-local-environment)

1. Download [certificate](https://curl.haxx.se/ca/cacert.pem) file
2. Copy it inside `ss-easy-s3/` root directory (assuming `ss-easy-s3` folder is inside project root directory)
3. 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'
         ]
     );

    ```
4. 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:**

- [AWS SSL security error : \[curl\] 60: blablabla](https://stackoverflow.com/questions/24620393/aws-ssl-security-error-curl-60-ssl-certificate-prob-unable-to-get-local?answertab=votes#tab-top)
- [Config to disable SSL](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/faq.html#how-do-i-disable-ssl)
- [Pinging your S3 Bucket Service](https://aws.amazon.com/premiumsupport/knowledge-center/s3-could-not-connect-endpoint-url/)

###  Health Score

22

—

LowBetter than 21% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

Top contributor holds 87.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/9717cc5aaeaf534cbead15e8a28f3e74d14e12c708b1a633c7502c433b2ad397?d=identicon)[fspringveldt](/maintainers/fspringveldt)

---

Top Contributors

[![fspringveldt](https://avatars.githubusercontent.com/u/10938392?v=4)](https://github.com/fspringveldt "fspringveldt (14 commits)")[![agil3st](https://avatars.githubusercontent.com/u/29949806?v=4)](https://github.com/agil3st "agil3st (1 commits)")[![vikas-srivastava](https://avatars.githubusercontent.com/u/1092931?v=4)](https://github.com/vikas-srivastava "vikas-srivastava (1 commits)")

### Embed Badge

![Health badge](/badges/fspringveldt-ss-easy-s3/health.svg)

```
[![Health](https://phpackages.com/badges/fspringveldt-ss-easy-s3/health.svg)](https://phpackages.com/packages/fspringveldt-ss-easy-s3)
```

###  Alternatives

[venveo/craft-compress

Create smart zip files from Craft assets on the fly

124.7k](/packages/venveo-craft-compress)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
