mirror of
https://github.com/camptocamp/odoo-cloud-platform.git
synced 2026-06-23 18:04:34 +00:00
* store the S3 uri in the 'store_fname' (s3://bucket/key) * the read-only mode is now built-in, as we store the bucket name, if a instance is started with a different bucket or another filestore method, it will continue to read the previous attachments on their stored bucket, but new attachments will be stored on the new one * remove config in ir.config_parameter, it makes all the stuff more complex and we don't use them (config file would be more interesting) * automatically migrate the attachments on loading of the server, so if an ir.attachment has been created during the module upgrade/initialization before attachment_s3 is loaded, it will be sent to S3 as soon as it's loaded
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_ACCESS_KEY_ID`` * ``AWS_SECRET_ACCESS_KEY`` * ``AWS_BUCKETNAME`` 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. Limitations ----------- When the ``ir.attachment`` model is started, it will automatically migrate the attachments which are not stored in S3 yet. This might be an issue when the number of attachments is huge. In that case, you might have more control by calling yourself ``env['ir.attachment'].force_storage()``.