mirror of
https://github.com/camptocamp/odoo-cloud-platform.git
synced 2026-06-24 16:48:36 +00:00
Merge commit 'refs/pull/122/head' of github.com:camptocamp/odoo-cloud-platform into merge-branch-2543-patch-12.0.1.22.1-84812888
This commit is contained in:
@@ -106,6 +106,46 @@ class IrAttachment(models.Model):
|
|||||||
})
|
})
|
||||||
return bucket
|
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"
|
||||||
|
)
|
||||||
|
return False
|
||||||
|
key = s3uri.item()
|
||||||
|
try:
|
||||||
|
obj = bucket.Object(key=key)
|
||||||
|
obj.Acl().put(ACL=acl)
|
||||||
|
_logger.info(
|
||||||
|
"ACL %s successfully set on object %s" % (acl, fname)
|
||||||
|
)
|
||||||
|
return True
|
||||||
|
except ClientError as e:
|
||||||
|
error_code = e.response['Error']['Code']
|
||||||
|
if error_code == "NoSuchKey":
|
||||||
|
_logger.exception(
|
||||||
|
"Object %s does not exists on S3 bucket" % fname
|
||||||
|
)
|
||||||
|
elif error_code == 'NotImplemented':
|
||||||
|
_logger.exception(
|
||||||
|
"S3 storage does not implement ACL" % fname
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
_logger.exception(
|
||||||
|
"Cannot set ACL %s on object %s" % (acl, fname)
|
||||||
|
)
|
||||||
|
return False
|
||||||
|
else:
|
||||||
|
_logger.warning("Cannot set ACL on object not stored on S3")
|
||||||
|
return False
|
||||||
|
|
||||||
@api.model
|
@api.model
|
||||||
def _store_file_read(self, fname, bin_size=False):
|
def _store_file_read(self, fname, bin_size=False):
|
||||||
if fname.startswith('s3://'):
|
if fname.startswith('s3://'):
|
||||||
|
|||||||
Reference in New Issue
Block a user