37 lines
939 B
Python
37 lines
939 B
Python
"""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)
|