PHPackages                             fof/s3-assets - 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. fof/s3-assets

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

fof/s3-assets
=============

Relocate Flarum disks onto S3 or compatible bucket

1.0.0-beta.4(1y ago)05891[1 issues](https://github.com/FriendsOfFlarum/s3-assets/issues)[1 PRs](https://github.com/FriendsOfFlarum/s3-assets/pulls)MITPHPPHP ^8.0

Since Nov 22Pushed 1y agoCompare

[ Source](https://github.com/FriendsOfFlarum/s3-assets)[ Packagist](https://packagist.org/packages/fof/s3-assets)[ Docs](https://friendsofflarum.org)[ Fund](https://opencollective.com/fof/donate)[ RSS](/packages/fof-s3-assets/feed)WikiDiscussions master Synced 2d ago

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

FoF S3 Assets
=============

[](#fof-s3-assets)

A [Flarum](http://flarum.org) extension. Relocate Flarum disks onto S3 or compatible bucket

Installation
------------

[](#installation)

Install with composer:

```
composer require fof/s3-assets:"*"
```

Updating
--------

[](#updating)

```
composer update fof/s3-assets
php flarum cache:clear
```

Configuration
-------------

[](#configuration)

The S3 (or compatible) bucket can be configured either by environment variables or via the extension settings. If the environment variables are set, they will override the settings entered in the admin panel, if set.

#### Environment variables

[](#environment-variables)

- `FOF_S3_ACCESS_KEY_ID` - your access key ID \*
- `FOF_S3_SECRET_ACCESS_KEY` - your secret \*
- `FOF_S3_REGION` - the region \*
- `FOF_S3_BUCKET` - the bucket name \*
- `FOF_S3_URL` - the public facing base URL of the bucket
- `FOF_S3_ENDPOINT` - the ARN
- `FOF_S3_ACL` - The ACL, if any, that should be applied to the uploaded object. For possible values, see [AWS Docs](https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl)
- `FOF_S3_PATH_STYLE_ENDPOINT` - boolean value
- `FOF_S3_CACHE_CONTROL` - Optional. Specify the `max-age` header files should be served with, for example `3153600` (1 year). `0` or not set = no caching.

`*` denotes the minimum requirements for using S3 on AWS. S3-compatible services will require more.

If you plan to setup the S3 configuration using the environment variables, please ensure these are set *before* enabling the extension

#### Transferring assets from the existing filesystem to the S3 bucket

[](#transferring-assets-from-the-existing-filesystem-to-the-s3-bucket)

After your new bucket is configured, any exisiting files, will not exist there (ie uploaded avatars, profile covers, etc).

Use the provided command to start copying these files. An optional additional paramater `--move` will delete the files from your local filesystem after a successful copy.

```
php flarum fof:s3:copy --move
```

Links
-----

[](#links)

- [Discuss](https://discuss.flarum.org/d/PUT_DISCUSS_SLUG_HERE)

###  Health Score

27

—

LowBetter than 47% of packages

Maintenance37

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity33

Early-stage or recently created project

 Bus Factor1

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

4

Last Release

579d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16573496?v=4)[IanM](/maintainers/imorland)[@imorland](https://github.com/imorland)

![](https://avatars.githubusercontent.com/u/1630413?v=4)[Gregor Hammerschmidt](/maintainers/GreXXL)[@GreXXL](https://github.com/GreXXL)

![](https://www.gravatar.com/avatar/0538135c1debcef5602dce7ece027909cc832b7a6284ab9189a19aa8de98d60d?d=identicon)[clarkwinkelmann](/maintainers/clarkwinkelmann)

![](https://www.gravatar.com/avatar/1298cdc0b2402a1aa34fb75a254947d655e090d62bd0531311331d369cac934e?d=identicon)[datitisev](/maintainers/datitisev)

---

Top Contributors

[![imorland](https://avatars.githubusercontent.com/u/16573496?v=4)](https://github.com/imorland "imorland (26 commits)")[![flarum-bot](https://avatars.githubusercontent.com/u/39334649?v=4)](https://github.com/flarum-bot "flarum-bot (11 commits)")[![luceos](https://avatars.githubusercontent.com/u/504687?v=4)](https://github.com/luceos "luceos (11 commits)")[![davwheat](https://avatars.githubusercontent.com/u/7406822?v=4)](https://github.com/davwheat "davwheat (1 commits)")

---

Tags

flarum

### Embed Badge

![Health badge](/badges/fof-s3-assets/health.svg)

```
[![Health](https://phpackages.com/badges/fof-s3-assets/health.svg)](https://phpackages.com/packages/fof-s3-assets)
```

###  Alternatives

[flarum-lang/russian

Russian language pack for Flarum.

12128.3k](/packages/flarum-lang-russian)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k15](/packages/tempest-framework)[fof/upload

The file upload extension for the Flarum forum with insane intelligence.

191192.5k18](/packages/fof-upload)[flarum-lang/french

French language pack to localize the Flarum forum software plus its official and third-party extensions.

1938.7k](/packages/flarum-lang-french)[fof/discussion-language

Specify the language a discussion is written in &amp; sort by language

1034.8k4](/packages/fof-discussion-language)

PHPackages © 2026

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