quioteframework/session-s3

AWS S3 session backend for Quiote — a SessionPersistenceInterface implementation for SessionManager, backed by a minimal SigV4 REST client (no aws-sdk-php dependency).

Maintainers

Package info

github.com/quioteframework/session-s3

Issues

pkg:composer/quioteframework/session-s3

Transparency log

Statistics

Installs: 0

Dependents: 1

Suggesters: 1

Stars: 0

dev-main 2026-07-04 14:58 UTC

This package is auto-updated.

Last update: 2026-07-05 17:07:48 UTC


README

AWS S3 session backend for Quiote: a Quiote\Session\SessionPersistenceInterface implementation for Quiote\Session\SessionManager, storing one JSON object per session id in a bucket.

Built on a minimal hand-rolled AWS Signature Version 4 REST client, not aws/aws-sdk-php — that SDK bundles a client for every AWS service; a session backend only ever needs get/put/delete on a single object. Bring your own PSR-18 HTTP client. Path-style requests, so endpoint also works against any S3-compatible service (MinIO, etc).

Install

composer require quioteframework/session-s3

Use

$client = new \Quiote\Storage\S3\S3Client(
    httpClient: $psr18Client,
    region: 'eu-west-1',
    accessKeyId: getenv('AWS_ACCESS_KEY_ID'),
    secretAccessKey: getenv('AWS_SECRET_ACCESS_KEY'),
    bucket: 'my-app-sessions',
);

$manager = new \Quiote\Session\SessionManager(
    new \Quiote\Storage\S3\S3SessionPersistence($client, keyPrefix: 'sessions/'),
);

The bucket must already exist — bucket creation/lifecycle is left to infrastructure tooling, not this package.

License

MIT. See LICENSE.