mirror of
https://github.com/camptocamp/odoo-cloud-platform.git
synced 2026-06-23 18:04:34 +00:00
Adds the possibility to insert `{db}` placeholder in the bucket name
that will be replaced by the database name to form a unique bucket
name per database.
59 lines
2.0 KiB
ReStructuredText
59 lines
2.0 KiB
ReStructuredText
Attachments on S3 storage
|
|
=========================
|
|
|
|
This addon allows to store the attachments (documents and assets) on S3 or any
|
|
other S3-compatible Object Storage.
|
|
|
|
Configuration
|
|
-------------
|
|
|
|
Activate S3 storage:
|
|
|
|
* Create or set the system parameter with the key ``ir_attachment.location``
|
|
and the value in the form ``s3``.
|
|
|
|
Configure accesses with environment variables:
|
|
|
|
* ``AWS_HOST`` (not required if using AWS services)
|
|
* ``AWS_REGION`` (required if using AWS services)
|
|
* ``AWS_ACCESS_KEY_ID``
|
|
* ``AWS_SECRET_ACCESS_KEY``
|
|
* ``AWS_BUCKETNAME`` (optional {db} placeholder)
|
|
|
|
Read-only mode:
|
|
|
|
The bucket and the file key are stored in the attachment. So if you change the
|
|
``AWS_BUCKETNAME`` or the ``ir_attachment.location``, the existing attachments
|
|
will still be read on their former bucket. But as soon as they are written over
|
|
or new attachments are created, they will be created on the new bucket or on
|
|
the other location (db or filesystem). This is a convenient way to be able to
|
|
read the production attachments on a replication (since you have the
|
|
credentials) without any risk to alter the production data.
|
|
|
|
This addon must be added in the server wide addons with (``--load`` option):
|
|
|
|
``--load=web,attachment_s3``
|
|
|
|
The System Parameter ``ir_attachment.storage.force.database`` can be customized to
|
|
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 bucket per database.
|
|
|
|
To handle this, you can insert the `{db}` placeholder in your bucket name variable ``AWS_BUCKETNAME``.
|
|
It will be replaced by the database name.
|
|
This will give you a unique bucketname per database.
|
|
|
|
|
|
Limitations
|
|
-----------
|
|
|
|
* You need to call ``env['ir.attachment'].force_storage()`` after
|
|
having changed the ``ir_attachment.location`` configuration in order to
|
|
migrate the existing attachments to S3.
|