synapse-s3-storage-provider
A storage provider which can fetch and store media in Amazon S3.
What it is and what it does
This package is a Synapse storage provider plugin that redirects media storage and retrieval to Amazon S3 or S3-compatible object storage services. Instead of storing media files on local disk, Synapse can be configured to push media to S3 and fetch it on demand, enabling scalable, distributed media management for Matrix homeservers.
The plugin integrates with Synapse's media storage system via configuration in homeserver.yaml. It supports optional features like server-side encryption with customer-provided keys, configurable storage classes (e.g., STANDARD_IA for cost optimization), object prefixes for multi-tenant bucket sharing, and tunable thread pool sizes. It also includes a companion script (s3_media_upload) for asynchronous bulk uploads and cleanup of local media after archival to S3.
Use it for:
- Run a Matrix homeserver with media stored on S3 instead of local disk, enabling horizontal scaling and shared storage across multiple server instances.
- Archive old media from a Synapse instance to S3 using the s3_media_upload script, then delete local copies to reclaim disk space.
- Use an S3-compatible service (MinIO, DigitalOcean Spaces, etc.) as a media backend when AWS S3 is not available or desired.
- Implement cost-effective media storage by configuring S3 storage classes like STANDARD_IA for infrequently accessed media.
- Share a single S3 bucket across multiple Synapse instances using the prefix configuration option.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Synapse media storage provider that integrates Amazon S3 (or S3-compatible services) as a backend for storing and retrieving media files.
Yes. This is an actively maintained, low-friction plugin for a specific and well-defined use case: offloading Synapse media storage to S3. It has no known vulnerabilities, permissive licensing, and stable dependencies. Install it if you run Synapse and want S3-backed media storage; skip it if you use local disk storage or a different homeserver.
Install
synapse-s3-storage-provider on PyPI
pip
pip install synapse-s3-storage-provideruv
uv add synapse-s3-storage-providerpoetry
poetry add synapse-s3-storage-providerInstalling synapse-s3-storage-provider
Before you install
Low friction install with a pure-Python wheel. Actively maintained with a recent release; last commit was 2026-08-14. Depends on boto3, botocore, and several other stable libraries (Twisted, psycopg2, PyYAML, humanize, tqdm).
License in practice
Licensed under Apache License 2.0 (permissive). You can use, modify, and distribute this package freely in both open-source and commercial projects, with minimal restrictions.
Quickstart
pip install synapse-s3-storage-provider
# Add to synapse config (homeserver.yaml):
media_storage_providers:
- module: s3_storage_provider.S3StorageProviderBackend
store_local: True
store_remote: True
config:
bucket: your-bucket-name
region_name: us-east-1
Requires Python 3.10 or later. Synapse must be installed and running; this is a plugin, not a standalone tool. AWS credentials must be configured (via environment, IAM role, or config file) for boto3.
Verify before relying
- Performance characteristics and throughput limits when handling large media volumes or concurrent uploads.
- Compatibility with specific versions of Synapse beyond the general requirement that it be installed.
- Whether the included s3_media_upload script supports incremental or resumable uploads for very large media stores.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (<4,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 7 — boto3, botocore, humanize, psycopg2, PyYAML, tqdm, Twisted |
| Maintenance | actively maintained — 93 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 137,877/month — #11,352 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: synapse_s3_storage_provider-1.6.1-py3-none-any.whl
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
django-s3-storageProvides Django file storage backends that read…
permissive · top 15,000 on PyPI
minioProvides high-level Python APIs to connect to…
permissive · top 5,000 on PyPI
matrix-synapseMatrix Synapse is a homeserver implementation…
unclear · top 15,000 on PyPI
git-remote-s3Enables Git to use Amazon S3 as a remote…
permissive · top 15,000 on PyPI
s3fss3fs provides a Python filesystem interface to…
permissive · top 100 on PyPI
s3pathS3Path provides a pathlib-like interface for…
permissive · top 5,000 on PyPI
fs-s3fsS3FS provides a PyFilesystem interface to…
permissive · top 15,000 on PyPI
s3torchconnectorclientInternal S3 client implementation providing…
permissive · top 5,000 on PyPI
amazon-sqs-extended-clientExtends boto3's SQS client to handle messages…
permissive · top 15,000 on PyPI
dvc-s3Enables DVC to read from, write to, and manage…
permissive · top 5,000 on PyPI