Skip to content

Commit

Permalink
[IMP] fs_attachment: send the mimetype information for S3
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastienbeau authored and vincent-hatakeyama committed Jul 15, 2024
1 parent 5fe0c42 commit 767a27f
Showing 1 changed file with 13 additions and 2 deletions.
15 changes: 13 additions & 2 deletions fs_attachment/models/ir_attachment.py
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,9 @@ def _get_datas_related_values(self, data, mimetype):
"db_datas": data,
}
return values
return super()._get_datas_related_values(data, mimetype)
return super(
IrAttachment, self.with_context(mimetype=mimetype)
)._get_datas_related_values(data, mimetype)

###########################################################
# Odoo methods that we override to use the object storage #
Expand Down Expand Up @@ -368,6 +370,14 @@ def _storage_file_read(self, fname: str) -> bytes | None:
with fs.open(fname, "rb") as f:
return f.read()

def _storage_write_option(self, fs):
_fs = fs
while _fs:
if hasattr(_fs, "s3"):
return {"ContentType": self._context["mimetype"]}
_fs = getattr(_fs, "fs", None)
return {}

@api.model
def _storage_file_write(self, bin_data: bytes) -> str:
"""Write the file to the filesystem storage"""
Expand All @@ -378,7 +388,8 @@ def _storage_file_write(self, bin_data: bytes) -> str:
if not fs.exists(dirname):
fs.makedirs(dirname)
fname = f"{storage}://{path}"
with fs.open(path, "wb") as f:
kwargs = self._storage_write_option(fs)
with fs.open(path, "wb", **kwargs) as f:
f.write(bin_data)
self._fs_mark_for_gc(fname)
return fname
Expand Down

0 comments on commit 767a27f

Please sign in to comment.