mirror of
https://github.com/camptocamp/odoo-cloud-platform.git
synced 2026-06-23 18:04:34 +00:00
[FIX] attachment_s3: Close fileobjects after usage
This commit is contained in:
committed by
Guewen Baconnier
co-authored by
Guewen Baconnier
parent
c89bfc83e0
commit
11c90c5a17
@@ -124,10 +124,10 @@ class IrAttachment(models.Model):
|
||||
)
|
||||
if bin_size:
|
||||
return bucket.Object(key).content_length
|
||||
res = io.BytesIO()
|
||||
bucket.download_fileobj(key, res)
|
||||
res.seek(0)
|
||||
read = base64.b64encode(res.read())
|
||||
with io.BytesIO() as res:
|
||||
bucket.download_fileobj(key, res)
|
||||
res.seek(0)
|
||||
read = base64.b64encode(res.read())
|
||||
except ClientError:
|
||||
read = ''
|
||||
_logger.info(
|
||||
@@ -143,20 +143,20 @@ class IrAttachment(models.Model):
|
||||
if location == 's3':
|
||||
bucket = self._get_s3_bucket()
|
||||
obj = bucket.Object(key=key)
|
||||
file = io.BytesIO()
|
||||
file.write(bin_data)
|
||||
file.seek(0)
|
||||
filename = 's3://%s/%s' % (bucket.name, key)
|
||||
try:
|
||||
obj.upload_fileobj(file)
|
||||
except ClientError as error:
|
||||
# log verbose error from s3, return short message for user
|
||||
_logger.exception(
|
||||
'Error during storage of the file %s' % filename
|
||||
)
|
||||
raise exceptions.UserError(
|
||||
_('The file could not be stored: %s') % str(error)
|
||||
)
|
||||
with io.BytesIO() as file:
|
||||
file.write(bin_data)
|
||||
file.seek(0)
|
||||
filename = 's3://%s/%s' % (bucket.name, key)
|
||||
try:
|
||||
obj.upload_fileobj(file)
|
||||
except ClientError as error:
|
||||
# log verbose error from s3, return short message for user
|
||||
_logger.exception(
|
||||
'Error during storage of the file %s' % filename
|
||||
)
|
||||
raise exceptions.UserError(
|
||||
_('The file could not be stored: %s') % str(error)
|
||||
)
|
||||
else:
|
||||
_super = super()
|
||||
filename = _super._store_file_write(key, bin_data)
|
||||
|
||||
Reference in New Issue
Block a user