attachment_swift: multi-tenancy use db name in container

Adds the possibility to insert `{db}` placeholder in the container
name that will be replaced by the database name to form a unique
container name per database.
This commit is contained in:
Danny W. Adair
2021-08-23 20:26:29 +12:00
parent 13d7d156a3
commit 6740b19206
2 changed files with 17 additions and 1 deletions
+15 -1
View File
@@ -18,7 +18,7 @@ Configure accesses with environment variables:
* ``SWIFT_ACCOUNT``
* ``SWIFT_PASSWORD``
* ``SWIFT_REGION_NAME`` : optional region
* ``SWIFT_WRITE_CONTAINER`` : Name of the container to use in the store (created if not existing)
* ``SWIFT_WRITE_CONTAINER`` : Name of the container to use in the store (created if not existing, optional {db} placeholder)
Read-only mode:
@@ -38,6 +38,20 @@ The System Parameter ``ir_attachment.storage.force.database`` can be customized
force storage of files in the database. See the documentation of the module
``base_attachment_object_storage``.
Multi-tenancy
-------------
Use the `{db}` placeholder to handle multi-tenancy.
On instances that hold multiple databases, it's preferable to have one container per database.
To handle this, you can insert the `{db}` placeholder in your container name variable ``SWIFT_WRITE_CONTAINER``.
It will be replaced by the database name.
This will give you a unique container per database.
As every attachment is saved with its container name, this doesn't affect the above-mentioned "Read-only mode" feature.
You could have multiple replicas read from the same production storage, but each write to their own container.
Python Dependencies
-------------------