diff --git a/shared/datastore/src/put_image.py b/shared/datastore/src/put_image.py index 0865fa7..b5de63c 100644 --- a/shared/datastore/src/put_image.py +++ b/shared/datastore/src/put_image.py @@ -8,6 +8,8 @@ from io import BytesIO from minio import Minio from PIL import Image +from .put import put + def put_image( client: Minio, @@ -17,28 +19,23 @@ def put_image( used as object name.""" assert isinstance(client, Minio) assert isinstance(image, Image.Image) + # get bucket name from env bucket_name = os.getenv('MINIO_BUCKET_NAME', default='') assert len(bucket_name) > 0 - subfolder = 'images' # save image to buffer buffer = BytesIO() image.save(buffer, 'png') - # get md5 of image + # get md5 of buffer checksum = md5(buffer.getbuffer()).hexdigest() - # prepare for saving - num_bytes = buffer.tell() - buffer.seek(0) - # send data to bucket + # determine object name + subfolder = 'images' object_name = f'{subfolder}/{checksum}' - 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) + # send data to bucket + put( + client=client, + buffer=buffer, + bucket_name=bucket_name, + object_name=object_name, + ) + logging.debug('finished') return checksum