Registry / aws / synapse-s3-storage-provider

synapse-s3-storage-provider

JSON →
library1.6.1pypypiunverified

A storage provider for Synapse, the Matrix homeserver, which fetches and stores media in Amazon S3 (or compatible object stores). Version 1.6.0 requires Synapse 1.140.0+. Released irregularly.

pip install synapse-s3-storage-provider
INSTALL
IMPORT
SIG · SYNAPSE-S3-STORAGE
S
synapse-s3-storage-provider
awspythonv1.6.1
Install
Import
Disk
Pass rate
0/ 10
Env Coverage0 / 10
glibc
3.93.13
musl
3.93.13
Install & Compatibility
Where this runs
tested against v? · pip install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
py 3.103.95 runs
build_error
glibc
py 3.103.95 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

S3StorageProviderBackend
from s3_storage_provider import S3StorageProviderBackend
from s3_storage_provider import S3StorageProviderBackend

Basic configuration example for Synapse's homeserver.yaml. The module is loaded automatically by Synapse; manual instantiation is for testing.

# In Synapse's homeserver.yaml under the `media_store` section: # media_store: # storage_providers: # - module: s3_storage_provider.S3StorageProviderBackend # store_local: True # store_remote: True # store_synchronous: False # config: # bucket: my-matrix-media-bucket # region_name: us-east-1 # # Optional: access_key_id: YOUR_ACCESS_KEY # # Optional: secret_access_key: YOUR_SECRET_KEY # # Optional: session_token: YOUR_SESSION_TOKEN # # Optional: prefix: myprefix/ # # Optional: endpoint_url: https://s3.custom-endpoint.com import os from s3_storage_provider import S3StorageProviderBackend # Example: creating an instance manually (not typical, usually via Synapse config) backend = S3StorageProviderBackend( config={ "bucket": "my-bucket", "region_name": "us-east-1", "access_key_id": os.environ.get('AWS_ACCESS_KEY_ID', ''), "secret_access_key": os.environ.get('AWS_SECRET_ACCESS_KEY', ''), } )
s3-storage-provider --version
Debug
Known issues
breakingVersion 1.6.0 requires Synapse 1.140.0+. Using an older Synapse will cause import errors or runtime breakage.
fix
Upgrade Synapse to >=1.140.0 or pin synapse-s3-storage-provider to 1.5.0.
affects: >=1.6.0
breakingThe database configuration must be read from Synapse's homeserver.yaml by default. Ensure the YAML file is accessible to the script (e.g., s3_media_upload).
fix
Use the `--synapse-config` flag or set the `SYNAPSE_CONFIG_PATH` environment variable to point to your homeserver.yaml.
affects: >=1.4.0
deprecatedSupport for Python 3.9 and earlier was dropped in favor of 3.10+. Check Python version before upgrading.
fix
Upgrade to Python 3.10 or later.
affects: >=1.6.0
gotchaThe `session_token` parameter (added in v1.6.0) is optional but critical for STS-based credentials. Omitting it when using temporary credentials will cause authentication failures.
fix
Include `session_token: YOUR_SESSION_TOKEN` in the config if using temporary AWS credentials.
affects: >=1.6.0
Upgrade
Version history
1.6.1latest on PyPI · released May 13, 2026
Audit
Dependencies
matrix-synapserequiredRequired at runtime; interacts directly with Synapse storage layer.
boto3requiredAWS SDK for Python; required for S3 operations.
Agent activity
24 hits · last 30 days
node
22
OpenAI (training)
1
Resources
synapse-s3-storage-provider — pip install synapse-s3-storage-provider · libregistry