mirror of
https://github.com/camptocamp/odoo-cloud-platform.git
synced 2026-06-24 02:08:36 +00:00
attachment_s3: Add set ACL function
This commit is contained in:
@@ -106,6 +106,34 @@ class IrAttachment(models.Model):
|
||||
})
|
||||
return bucket
|
||||
|
||||
@api.multi
|
||||
def _store_file_set_acl(self, acl):
|
||||
self.ensure_one()
|
||||
fname = self.store_fname
|
||||
if fname.startswith('s3://'):
|
||||
s3uri = S3Uri(fname)
|
||||
try:
|
||||
bucket = self._get_s3_bucket(name=s3uri.bucket())
|
||||
except exceptions.UserError:
|
||||
_logger.exception(
|
||||
"error getting bucket from object storage"
|
||||
)
|
||||
key = s3uri.item()
|
||||
try:
|
||||
obj = bucket.Object(key=key)
|
||||
obj.Acl().put(ACL=acl)
|
||||
_logger.info(
|
||||
"ACL public-read successfully set on object %s" % fname
|
||||
)
|
||||
return True
|
||||
except ClientError:
|
||||
_logger.exception(
|
||||
"Cannot set ACL %s on object %s" % (acl, fname)
|
||||
)
|
||||
else:
|
||||
_logger.warning("Cannot set ACL on object not stored on S3")
|
||||
return False
|
||||
|
||||
@api.model
|
||||
def _store_file_read(self, fname, bin_size=False):
|
||||
if fname.startswith('s3://'):
|
||||
|
||||
Reference in New Issue
Block a user