"""Definition of put function.""" import logging from io import BytesIO from minio import Minio def put( client: Minio, buffer: BytesIO, bucket_name: str, object_name: str, ) -> None: """Put buffer in bucket in MinIO and return MD5 checksum as object name.""" assert isinstance(client, Minio) assert isinstance(buffer, BytesIO) assert isinstance(bucket_name, str) assert len(bucket_name) > 0 assert isinstance(object_name, str) assert len(object_name) > 0 # prepare for saving num_bytes = len(buffer.getvalue()) buffer.seek(0) # send data to bucket try: client.put_object( bucket_name=bucket_name, object_name=object_name, length=num_bytes, data=buffer, ) except Exception as exc: logging.error('failed saving data to MinIO') raise exc logging.debug('saved data to %s', object_name)