opsfour/s3-server
Composer 安装命令:
composer require opsfour/s3-server
包简介
Production-grade S3-compatible server as a PHP 8.4+ Composer package
README 文档
README
A production-grade, fully S3-compatible object storage server built as a PHP 8.4+ Composer package. Powered by Amp v3 for true async I/O with PHP Fibers.
Features
- Full S3 API compatibility — 66 S3 operations including multipart uploads, versioning, object lock, lifecycle rules, S3 Select, restore, and website hosting
- AWS SDK compatible — Works with any S3 client (AWS CLI, aws-sdk-php, boto3, MinIO client, etc.)
- 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, chunked streaming signatures
- 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 and per-bucket 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 CSV, JSON, and Parquet objects
- Lifecycle management — Expiration, noncurrent version cleanup, abort incomplete uploads
- Rate limiting — Per-IP token bucket persisted to database, survives restarts
- Production hardened — 500+ PHPUnit tests covering AWS SDK flows, large objects, concurrency, metadata backends, remote storage, and reliability profiles
Requirements
- PHP 8.4+
- Composer 2.x
- ext-openssl (encryption)
- ext-pdo_sqlite (default metadata) or ext-pdo_pgsql / ext-pdo_mysql
- Symfony 7 or 8 when using the Symfony Bundle
- Laravel 11+ when using the Laravel service provider
Quick Start
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
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
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
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
Full documentation is in the docs/ directory:
| Guide | Description |
|---|---|
| Quick Start | Get running in 5 minutes |
| Installation | Standalone, Laravel, and Symfony installation |
| Configuration | All environment variables and options |
| Laravel Integration | Service provider, Artisan commands, config |
| Symfony Integration | Bundle registration, console commands, services, config |
| Authentication | SigV4, presigned URLs, credential providers |
| Storage Backends | Filesystem, Flysystem, in-memory |
| Metadata Backends | SQLite, PostgreSQL, MySQL |
| Encryption | SSE-S3 key rotation, SSE-C, configuration |
| API Operations | All 66 supported S3 operations |
| Versioning & Object Lock | Bucket versioning, retention, legal holds |
| Notifications | Event notifications and webhook delivery |
| Lifecycle Rules | Object expiration and cleanup |
| S3 Select | SQL queries over stored objects |
| Policy Compatibility | Supported IAM-style actions and condition keys |
| Production Feature Roadmap | Implemented production features and deferred AWS scope |
| Release Checklist | Production readiness checks before tagging |
| Production Deployment | TLS, scaling, monitoring, backups |
| Architecture | Internals, middleware stack, design decisions |
| Development | Running tests, contributing, extending |
Project & Support
opsfour S3 Server is a twopeaks.digital project. Related ops4 information is available at 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
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 1
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-15