implemented base functions
This commit is contained in:
@@ -2,13 +2,14 @@
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from io import BytesIO
|
|
||||||
|
|
||||||
from minio import Minio
|
from minio import Minio
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
|
|
||||||
from shared.utils import check_env
|
from shared.utils import check_env
|
||||||
|
|
||||||
|
from .get import get
|
||||||
|
|
||||||
|
|
||||||
def get_image(
|
def get_image(
|
||||||
client: Minio,
|
client: Minio,
|
||||||
@@ -23,19 +24,11 @@ def get_image(
|
|||||||
bucket_name = str(os.getenv('MINIO_BUCKET_NAME'))
|
bucket_name = str(os.getenv('MINIO_BUCKET_NAME'))
|
||||||
object_name = f'images/{object_name}'
|
object_name = f'images/{object_name}'
|
||||||
# get object from bucket
|
# get object from bucket
|
||||||
try:
|
buffer = get(
|
||||||
response = client.get_object(
|
client=client,
|
||||||
bucket_name=bucket_name,
|
bucket_name=bucket_name,
|
||||||
object_name=object_name,
|
object_name=object_name,
|
||||||
)
|
)
|
||||||
buffer = BytesIO(response.data)
|
|
||||||
except Exception as exc:
|
|
||||||
logging.error('failed getting data from MinIO')
|
|
||||||
raise exc
|
|
||||||
finally:
|
|
||||||
response.close()
|
|
||||||
response.release_conn()
|
|
||||||
buffer.seek(0)
|
|
||||||
# convert data to image
|
# convert data to image
|
||||||
image = Image.open(buffer)
|
image = Image.open(buffer)
|
||||||
logging.debug('got data from %s', object_name)
|
logging.debug('got data from %s', object_name)
|
||||||
|
|||||||
@@ -3,13 +3,14 @@
|
|||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from io import BytesIO
|
|
||||||
|
|
||||||
import torch
|
import torch
|
||||||
from minio import Minio
|
from minio import Minio
|
||||||
|
|
||||||
from shared.utils import check_env
|
from shared.utils import check_env
|
||||||
|
|
||||||
|
from .get import get
|
||||||
|
|
||||||
|
|
||||||
def get_model(
|
def get_model(
|
||||||
client: Minio,
|
client: Minio,
|
||||||
@@ -20,24 +21,16 @@ def get_model(
|
|||||||
assert isinstance(object_name, str)
|
assert isinstance(object_name, str)
|
||||||
assert len(object_name) > 0
|
assert len(object_name) > 0
|
||||||
# prepare arguments
|
# prepare arguments
|
||||||
check_env({'MINIO_BUCKET_NAME_MODELS'})
|
check_env({'MINIO_BUCKET_NAME'})
|
||||||
bucket_name = str(os.getenv('MINIO_BUCKET_NAME_MODELS'))
|
bucket_name = str(os.getenv('MINIO_BUCKET_NAME'))
|
||||||
object_name = f'models/{object_name}'
|
object_name = f'models/{object_name}'
|
||||||
# get object from bucket
|
# get object from bucket
|
||||||
try:
|
buffer = get(
|
||||||
response = client.get_object(
|
client=client,
|
||||||
bucket_name=bucket_name,
|
bucket_name=bucket_name,
|
||||||
object_name=object_name,
|
object_name=object_name,
|
||||||
)
|
)
|
||||||
buffer = BytesIO(response.data)
|
|
||||||
except Exception as exc:
|
|
||||||
logging.error('failed getting data from MinIO')
|
|
||||||
raise exc
|
|
||||||
finally:
|
|
||||||
response.close()
|
|
||||||
response.release_conn()
|
|
||||||
# convert data to model checkpoint
|
# convert data to model checkpoint
|
||||||
buffer.seek(0)
|
|
||||||
model_content = torch.load(buffer)
|
model_content = torch.load(buffer)
|
||||||
logging.debug('finished')
|
logging.debug('finished')
|
||||||
return model_content
|
return model_content
|
||||||
|
|||||||
@@ -22,14 +22,13 @@ def put_image(
|
|||||||
# get bucket name from env
|
# 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
|
||||||
# save image to buffer
|
# save data to buffer
|
||||||
buffer = BytesIO()
|
buffer = BytesIO()
|
||||||
image.save(buffer, 'png')
|
image.save(buffer, 'png')
|
||||||
# get md5 of buffer
|
# get md5 of buffer
|
||||||
checksum = md5(buffer.getbuffer()).hexdigest()
|
checksum = md5(buffer.getbuffer()).hexdigest()
|
||||||
# determine object name
|
# set object name
|
||||||
subfolder = 'images'
|
object_name = f'images/{checksum}'
|
||||||
object_name = f'{subfolder}/{checksum}'
|
|
||||||
# send data to bucket
|
# send data to bucket
|
||||||
put(
|
put(
|
||||||
client=client,
|
client=client,
|
||||||
|
|||||||
@@ -9,6 +9,10 @@ import torch
|
|||||||
from minio import Minio
|
from minio import Minio
|
||||||
from torch.nn import Module
|
from torch.nn import Module
|
||||||
|
|
||||||
|
from shared.utils import check_env
|
||||||
|
|
||||||
|
from .put import put
|
||||||
|
|
||||||
|
|
||||||
def put_model(
|
def put_model(
|
||||||
client: Minio,
|
client: Minio,
|
||||||
@@ -18,28 +22,22 @@ def put_model(
|
|||||||
used as object name."""
|
used as object name."""
|
||||||
assert isinstance(client, Minio)
|
assert isinstance(client, Minio)
|
||||||
assert isinstance(model, Module)
|
assert isinstance(model, Module)
|
||||||
bucket_name = os.getenv('MINIO_BUCKET_NAME', default='')
|
# get bucket name from env
|
||||||
assert len(bucket_name) > 0
|
check_env({'MINIO_BUCKET_NAME'})
|
||||||
subfolder = 'models'
|
bucket_name = str(os.getenv('MINIO_BUCKET_NAME'))
|
||||||
# save image to buffer
|
# save data to buffer
|
||||||
buffer = BytesIO()
|
buffer = BytesIO()
|
||||||
torch.save(model.state_dict(), buffer)
|
torch.save(model.state_dict(), buffer)
|
||||||
# get md5 of image
|
# get md5 of image
|
||||||
checksum = md5(buffer.getbuffer()).hexdigest()
|
checksum = md5(buffer.getbuffer()).hexdigest()
|
||||||
# prepare for saving
|
# set object name
|
||||||
num_bytes = buffer.tell()
|
object_name = f'models/{checksum}'
|
||||||
buffer.seek(0)
|
|
||||||
# send data to bucket
|
# send data to bucket
|
||||||
object_name = f'{subfolder}/{checksum}'
|
put(
|
||||||
try:
|
client=client,
|
||||||
client.put_object(
|
buffer=buffer,
|
||||||
bucket_name=bucket_name,
|
bucket_name=bucket_name,
|
||||||
object_name=object_name,
|
object_name=object_name,
|
||||||
length=num_bytes,
|
)
|
||||||
data=buffer,
|
logging.debug('finished')
|
||||||
)
|
|
||||||
except Exception as exc:
|
|
||||||
logging.error('failed saving data to MinIO')
|
|
||||||
raise exc
|
|
||||||
logging.debug('saved data to %s', object_name)
|
|
||||||
return checksum
|
return checksum
|
||||||
|
|||||||
Reference in New Issue
Block a user