PHPackages                             skullyframework/skully-amazon-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. skullyframework/skully-amazon-s3

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

skullyframework/skully-amazon-s3
================================

Amazon S3 Integration with Skully Framework. Can be used with Skully Admin.

v0.1.6(11y ago)0131MITJavaScriptPHP &gt;=5.4

Since Mar 13Pushed 11y ago4 watchersCompare

[ Source](https://github.com/skullyframework/skully-amazon-s3)[ Packagist](https://packagist.org/packages/skullyframework/skully-amazon-s3)[ RSS](/packages/skullyframework-skully-amazon-s3/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (8)Versions (6)Used By (0)

skully-amazon-s3
================

[](#skully-amazon-s3)

Skully Framework integration with Amazon S3. Features:

1. Conversion of all important public urls to their respective Amazon S3 paths.
2. If you have Skully Admin installed - Automatically send all uploaded images to your S3 repository after they resize completed.
3. Console application to git manage your public directory in Amazon.

Main Module
-----------

[](#main-module)

The main module allows your app to convert all public urls into amazon S3 repository paths, and send images uploaded in admin to your S3 repository.

### Installation of main module

[](#installation-of-main-module)

Include this into your composer:

```
"require": {
    "skullyframework/skully-amazon-s3": "0.1.*"
}

```

Then do `composer update`.

Update your Application and Config classes by use-ing `S3ApplicationTrait` and `S3ConfigTrait` in them. Follow the code from `/vendor/skullyframework/skully-amazon-s3/Tests/app/TestApp` on how to do this.

### Usage of main module

[](#usage-of-main-module)

Add the following code to your config file (yourapp/config/config.common.php or yourapp/config/config.unique.php):

```
    // Copy credentials.csv from AmazonS3 website into directory "config/AmazonS3/"
    $csv = file_get_contents(realpath(__DIR__.'/AmazonS3/credentials.csv'));
    $csv_r = explode("\n", $csv);
    $s3Config = explode(',', trim($csv_r[1]));
    $s3Config[0] = str_replace('"', '', $s3Config[0]);

    $config->setProtectedFromArray(array(
        'amazonS3' => array(
            'enabled' => true,
            'bucket' => 'skully-admin',
            'region' => 's3-ap-southeast-1',
            'settings' => array(
                'profile'=> $s3Config[0],
                'key'    => $s3Config[1],
                'secret' => $s3Config[2],
            )
        )
    ));

```

**Use your Amazon credentials in your app**:

Copy the directory `yourapp/vendor/skully-amazon-s3/Tests/app/config/AmazonS3` and add the following to your `yourapp/.gitignore` file:

```
config/AmazonS3/*
!config/AmazonS3/README.txt
.git-s3
.s3conf

```

Login to your Amazon S3 account, then download your access credentials. It is usually named `credentials.csv`. Copy this file to `yourapp/config/amazonS3` directory so it can be used by your config file.

And in your Skully Admin controllers, change them to extend from `SkullyAwsS3\Controllers\ImageUploader\ImageUploaderCRUD` or `SkullyAwsS3\Controllers\ImageUploader\ImageUploaderSetting` or `SkullyAwsS3\Controllers\ImageUploader\ImageUploader` instead. To see this, see example code at `/vendor/skully-amazon-s3/Tests/app/TestApp/Controllers/Admin/CRUDImagesController.php`.

**Done!**

At this stage both feature #1 and #2 mentioned earlier should have implemented within your app.

Console Application
-------------------

[](#console-application)

You can actually start working with Amazon S3 now by manually sending all your files in public directory to your Amazon S3 repository, except for public/\[template\]/App directory. If you need a better workflow, though (and you should!), you can install the **Console Application** for this module, which basically allows you to treat your Amazon S3 repository as Git repository.

You could then simply do `./console skully:s3 sync` to synchronise the files to your server.

This console app uses s3cmd application, so you may also use any of its commands by calling `./console skully:s3 "s3cmd [arguments]"`.

s3cmd references:

1. Simple commands:
2. Advanced commands:

### Installation of console application

[](#installation-of-console-application)

S3cmd used by this module requires Python 2.6 (or newer). S3cmd is not compatible with Python 3.x.

### Usage of console application

[](#usage-of-console-application)

Simply run this command to synchronise with server:

```
./console skully:s3 sync

```

Example
-------

[](#example)

There is a sample application in `Tests/TestApp/app`. To set this up (do the following in your terminal):

1. Clone this repository into your web server `git clone https://github.com/skullyframework/skully-amazon-s3 `.
2. Create a database named `skully_admin` and `skully_admin_test`.
3. Browse to the test app `cd Tests/app`.
4. Run db migration `./console skully:schema db:migration`.
5. Browse to your app

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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.

###  Release Activity

Cadence

Every ~3 days

Total

6

Last Release

4067d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/126318?v=4)[Jay](/maintainers/jaycode)[@jaycode](https://github.com/jaycode)

---

Top Contributors

[![jaycode](https://avatars.githubusercontent.com/u/126318?v=4)](https://github.com/jaycode "jaycode (5 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/skullyframework-skully-amazon-s3/health.svg)

```
[![Health](https://phpackages.com/badges/skullyframework-skully-amazon-s3/health.svg)](https://phpackages.com/packages/skullyframework-skully-amazon-s3)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M790](/packages/league-flysystem-aws-s3-v3)[aws/aws-sdk-php-laravel

A simple Laravel 9/10/11/12/13 service provider for including the AWS SDK for PHP.

1.7k35.6M75](/packages/aws-aws-sdk-php-laravel)[vich/uploader-bundle

Ease file uploads attached to entities

1.9k25.9M116](/packages/vich-uploader-bundle)[humanmade/s3-uploads

WordPress plugin to store uploads on S3

2.1k2.4M9](/packages/humanmade-s3-uploads)[vinelab/cdn

Content Delivery Network (CDN) Package for Laravel

217240.8k1](/packages/vinelab-cdn)[publiux/laravelcdn

Content Delivery Network (CDN) Package for Laravel

155230.4k](/packages/publiux-laravelcdn)

PHPackages © 2026

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