123456789101112131415161718192021222324 |
- import boto3
- from PIL import Image
- import numpy as np
- from io import BytesIO
- class S3Util:
- @classmethod
- def read_image_from_s3(cls, bucket, key, region_name='ap-southeast-1')->np.ndarray:
- s3 = boto3.resource('s3', region_name='ap-southeast-1')
- bucket = s3.Bucket(bucket)
- object = bucket.Object(key)
- response = object.get()
- file_stream = response['Body']
- im = Image.open(file_stream)
- return np.array(im)
- @classmethod
- def write_image_to_s3(cls, img_array, bucket, key, region_name='ap-southeast-1')->None:
- s3 = boto3.resource('s3', region_name)
- bucket = s3.Bucket(bucket)
- object = bucket.Object(key)
- file_stream = BytesIO()
- im = Image.fromarray(img_array)
- im.save(file_stream, format='jpeg')
- object.put(Body=file_stream.getvalue())
|