implemented new more general function

This commit is contained in:
brian
2024-10-25 17:10:03 +00:00
parent e189b7c1f7
commit 0676011f98
+14 -17
View File
@@ -8,6 +8,8 @@ from io import BytesIO
from minio import Minio from minio import Minio
from PIL import Image from PIL import Image
from .put import put
def put_image( def put_image(
client: Minio, client: Minio,
@@ -17,28 +19,23 @@ def put_image(
used as object name.""" used as object name."""
assert isinstance(client, Minio) assert isinstance(client, Minio)
assert isinstance(image, Image.Image) assert isinstance(image, Image.Image)
# get bucket name from env
bucket_name = os.getenv('MINIO_BUCKET_NAME', default='') bucket_name = os.getenv('MINIO_BUCKET_NAME', default='')
assert len(bucket_name) > 0 assert len(bucket_name) > 0
subfolder = 'images'
# save image to buffer # save image to buffer
buffer = BytesIO() buffer = BytesIO()
image.save(buffer, 'png') image.save(buffer, 'png')
# get md5 of image # get md5 of buffer
checksum = md5(buffer.getbuffer()).hexdigest() checksum = md5(buffer.getbuffer()).hexdigest()
# prepare for saving # determine object name
num_bytes = buffer.tell() subfolder = 'images'
buffer.seek(0)
# send data to bucket
object_name = f'{subfolder}/{checksum}' object_name = f'{subfolder}/{checksum}'
try: # send data to bucket
client.put_object( put(
bucket_name=bucket_name, client=client,
object_name=object_name, buffer=buffer,
length=num_bytes, bucket_name=bucket_name,
data=buffer, object_name=object_name,
) )
except Exception as exc: logging.debug('finished')
logging.error('failed saving data to MinIO')
raise exc
logging.debug('saved data to %s', object_name)
return checksum return checksum