PHPackages                             opsfour/s3-server - 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. opsfour/s3-server

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

opsfour/s3-server
=================

Production-grade S3-compatible server as a PHP 8.4+ Composer package

v1.1.0(1mo ago)154[1 PRs](https://github.com/opsfour/s3-server/pulls)MITPHPPHP ^8.4CI passing

Since Jun 15Pushed 4d agoCompare

[ Source](https://github.com/opsfour/s3-server)[ Packagist](https://packagist.org/packages/opsfour/s3-server)[ Docs](https://twopeaks.digital)[ RSS](/packages/opsfour-s3-server/feed)WikiDiscussions main Synced 2w ago

READMEChangelogDependencies (24)Versions (3)Used By (0)

opsfour S3 Server
=================

[](#opsfour-s3-server)

A production-oriented S3-compatible object storage server built as a PHP 8.4+ Composer package. Powered by [Amp v3](https://amphp.org/) for async I/O with PHP Fibers.

Features
--------

[](#features)

- **Broad S3 API coverage** — 66 routed S3 operations including multipart uploads, versioning, object lock, lifecycle rules, S3 Select, restore, and website hosting
- **AWS SDK compatible** — Tested with the AWS SDK for PHP; standard S3 clients can use the documented operation subset
- **Multiple metadata backends** — SQLite (single-node), PostgreSQL or MySQL (multi-node HA)
- **Multiple storage backends** — Local filesystem, Flysystem (S3, GCS, Azure, SFTP), or in-memory
- **Server-side encryption** — SSE-S3 with key rotation support, SSE-C (customer-provided keys), AES-256-GCM
- **Authentication** — AWS Signature V4, presigned URLs, signed and unsigned `aws-chunked` checksum trailers
- **Multi-tenant** — Owner ID scopes all operations; multiple credential providers (memory, database, file, chain)
- **Framework integrations** — Standalone CLI, Laravel service provider, and Symfony Bundle
- **Quotas and tiering** — Per-owner/per-bucket object and multipart-staging quotas, physical storage tiers, cold-tier restore workflow
- **Event notifications** — Persistent queue with retry, exponential backoff, dead-letter, and SSRF protection
- **S3 Select** — SQL queries over unencrypted CSV and JSON objects
- **Lifecycle management** — Expiration, noncurrent version cleanup, abort incomplete uploads
- **Rate limiting** — Per-IP token bucket persisted to database, survives restarts
- **Production hardened** — 745-test default suite plus large-object, high-concurrency, remote-storage, and uninterrupted 12-hour soak profiles

Requirements
------------

[](#requirements)

- PHP 8.4+
- Composer 2.x
- ext-openssl (encryption)
- ext-pdo\_sqlite (default metadata) or ext-pdo\_pgsql / ext-pdo\_mysql
- Symfony 7.4 LTS or 8.1+ when using the Symfony Bundle
- Laravel 12 or 13 when using the Laravel service provider

Quick Start
-----------

[](#quick-start)

### Standalone

[](#standalone)

```
composer require opsfour/s3-server

# Start with defaults (SQLite metadata, filesystem storage)
php vendor/bin/s3-server \
  --storage-path=/var/data/s3 \
  --access-key=myAccessKey \
  --secret-key=mySecretKey
```

### Laravel

[](#laravel)

```
composer require opsfour/s3-server

php artisan vendor:publish --provider="OpsFour\S3Server\Laravel\S3ServerServiceProvider"

# Configure in .env
S3_STORAGE_PATH=/var/data/s3
S3_ACCESS_KEY=myAccessKey
S3_SECRET_KEY=mySecretKey

php artisan s3:serve
```

### Symfony

[](#symfony)

```
composer require opsfour/s3-server

# Register OpsFour\S3Server\Symfony\S3ServerBundle in config/bundles.php
# Configure config/packages/opsfour_s3_server.yaml
php bin/console opsfour:s3:serve
```

### Connect with AWS CLI

[](#connect-with-aws-cli)

```
aws configure set aws_access_key_id myAccessKey
aws configure set aws_secret_access_key mySecretKey

aws --endpoint-url http://localhost:9000 s3 mb s3://my-bucket
aws --endpoint-url http://localhost:9000 s3 cp file.txt s3://my-bucket/
aws --endpoint-url http://localhost:9000 s3 ls s3://my-bucket/
```

Documentation
-------------

[](#documentation)

Full documentation is in the [docs/](docs/) directory:

GuideDescription[Quick Start](docs/quickstart.md)Get running in 5 minutes[Installation](docs/installation.md)Standalone, Laravel, and Symfony installation[Configuration](docs/configuration.md)All environment variables and options[Laravel Integration](docs/laravel-integration.md)Service provider, Artisan commands, config[Symfony Integration](docs/symfony-integration.md)Bundle registration, console commands, services, config[Authentication](docs/authentication.md)SigV4, presigned URLs, credential providers[Storage Backends](docs/storage-backends.md)Filesystem, Flysystem, in-memory[Metadata Backends](docs/metadata-backends.md)SQLite, PostgreSQL, MySQL[Encryption](docs/encryption.md)SSE-S3 key rotation, SSE-C, configuration[API Operations](docs/api-operations.md)All 66 supported S3 operations[Versioning &amp; Object Lock](docs/versioning.md)Bucket versioning, retention, legal holds[Notifications](docs/notifications.md)Event notifications and webhook delivery[Lifecycle Rules](docs/lifecycle.md)Object expiration and cleanup[S3 Select](docs/s3-select.md)SQL queries over stored objects[Policy Compatibility](docs/policy-compatibility.md)Supported IAM-style actions and condition keys[Production Feature Roadmap](docs/production-feature-roadmap.md)Implemented production features and deferred AWS scope[Release Checklist](docs/release-checklist.md)Production readiness checks before tagging[Changelog](CHANGELOG.md)Versioned release history and upgrade scope[Production Deployment](docs/deployment.md)TLS, scaling, monitoring, backups[Architecture](docs/architecture.md)Internals, middleware stack, design decisions[Development](docs/development.md)Running tests, contributing, extendingProject &amp; Support
---------------------

[](#project--support)

opsfour S3 Server is a [twopeaks.digital](https://twopeaks.digital) project. Related ops4 information is available at [ops4.com](https://ops4.com).

This package and repository are provided **as is**, without warranty of any kind. No guarantee is made for fitness for a particular purpose, uninterrupted operation, data integrity, security, compatibility, or continued maintenance. To the maximum extent permitted by law, no liability is accepted for damages, data loss, business interruption, or other consequences arising from use of this software. By using this repository or package, you acknowledge and agree to this disclaimer and limitation of liability.

Paid support, integration work, production hardening, and custom development are available on request.

License
-------

[](#license)

MIT

###  Health Score

44

—

FairBetter than 90% of packages

Maintenance95

Actively maintained with recent releases

Popularity12

Limited adoption so far

Community6

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 ~0 days

Total

2

Last Release

45d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/d7a78e29597fc941f1f332d66890ddc285697e4f458f9d116115288e2a320f47?d=identicon)[tomhatzer](/maintainers/tomhatzer)

---

Top Contributors

[![tomhatzer](https://avatars.githubusercontent.com/u/3952168?v=4)](https://github.com/tomhatzer "tomhatzer (17 commits)")

---

Tags

amphpcomposercomposer-packagefiberslaravelphps3symfony

###  Code Quality

TestsPHPUnit

Code StylePHP CS Fixer

### Embed Badge

![Health badge](/badges/opsfour-s3-server/health.svg)

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

###  Alternatives

[danog/madelineproto

Async PHP client API for the telegram MTProto protocol.

3.5k902.0k24](/packages/danog-madelineproto)[laravel/framework

The Laravel Framework.

34.8k543.8M20.6k](/packages/laravel-framework)[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.7k38.9k](/packages/matomo-matomo)[tempest/framework

The PHP framework that gets out of your way.

2.2k34.4k17](/packages/tempest-framework)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M608](/packages/shopware-core)[shopware/platform

The Shopware e-commerce core

3.4k1.5M3](/packages/shopware-platform)

PHPackages © 2026

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