S3¶
jdlib.storage is object storage, and jdlib.storage.s3.S3ObjectStorage is the backend that ships.
The same rule as the cache applies: the tenant is part of the key, so a shared bucket cannot become a
cross-tenant read.
| Module | What it is |
|---|---|
provider |
the storage protocol a backend implements |
keys |
key construction, with the tenant in the prefix |
metadata |
the metadata stored beside an object |
s3 |
S3ObjectStorage |
errors |
the refusals |
What ships, and what does not¶
S3 is verified against a real MinIO in the integration suite. Google Cloud Storage and Azure Blob have no module and no export: a provider class in the public surface is a claim that it works, and a test asserts they are absent rather than leaving the claim implicit.
Wiring it¶
from jdlib.storage.s3 import S3ObjectStorage
storage = S3ObjectStorage(
bucket="tenant-objects",
endpoint_url="http://127.0.0.1:9000", # MinIO in the lab; omit for AWS
...
)
Credentials come from the caller's own chain (the SDK's, or jdlib.credentials), never from a value
the library read out of the environment on its own.
Where it is tested¶
tests/integration/ against MinIO, including the key-prefix rule. The feature guide is
features/storage.