What are we trying to find out?

How much of the S3 protocol’s semantics can be represented in a modular PHP architecture without tightly coupling the API and storage backend?

01

Why does this matter to us?

S3 compatibility includes signatures, multipart uploads, versioning, Object Lock, lifecycle rules, range requests and concurrent access. It involves far more than merely storing files.

02

What did we build?

The HTTP and S3 protocol layer, metadata and binary storage were separated. This allows database and storage drivers to be changed without reimplementing the API semantics.

03

Where does the experiment stand?

The S3 server is published as an open-source package and is used in production. It is publicly available as a technical building block and reference implementation.

04

What happens next?

Further development follows concrete requirements from production use and new usage scenarios.

Technologies and topics

  • Open Source
  • PHP
  • Async I/O
  • AWS SigV4
  • Object Storage
  • S3