added support for content type when putting object in minio
Code Quality Pipeline / code-quality (pull_request) Failing after 24s
Test Python Package / test (pull_request) Successful in 1m9s

This commit is contained in:
Brian Bjarke Jensen
2025-09-18 19:34:05 +02:00
parent 1dd604dc2a
commit 3ab8da92fb
2 changed files with 18 additions and 1 deletions
@@ -113,13 +113,15 @@ class MinioAdapter(
self.logger.debug(res)
return res
def _put(self, object_name: str, data: BytesIO) -> None:
def _put(self, object_name: str, data: BytesIO, content_type: str = "application/octet-stream") -> None:
"""Put an object into the Minio bucket."""
# Check input
if not isinstance(object_name, str) or len(object_name) == 0:
raise ValueError("object_name must be a non-empty string")
if not isinstance(data, BytesIO) or data.getbuffer().nbytes == 0:
raise ValueError("data must be a non-empty BytesIO object")
if not isinstance(content_type, str) or len(content_type) == 0:
raise ValueError("content_type must be a non-empty string")
# Check connection
if self._client is None or not self.is_connected:
raise ConnectionError("Not connected to Minio")
@@ -134,6 +136,7 @@ class MinioAdapter(
data=data,
length=num_bytes,
part_size=self.chunk_size,
content_type=content_type,
)
self.logger.debug(
f"Put object '{object_name}' into bucket '{self._bucket_name}'"
+14
View File
@@ -370,6 +370,20 @@ def test_should_raise_value_error_on_invalid_put_data(
minio_adapter._put(object_name, data) # type: ignore
def test_should_raise_value_error_on_invalid_put_content_type(
data: BytesIO,
minio_adapter: MinioAdapter,
) -> None:
"""Test that the MinioAdapter raises ValueError when putting with an invalid content type."""
# Arrange
object_name = "valid_object_name"
invalid_content_types = ["", 123, None]
# Act & Assert
for content_type in invalid_content_types:
with pytest.raises(ValueError):
minio_adapter._put(object_name, data, content_type) # type: ignore
def test_should_raise_connection_error_on_put_when_not_connected(
data: BytesIO,
minio_adapter: MinioAdapter,