26 lines
787 B
Python
26 lines
787 B
Python
|
from __future__ import print_function
|
||
|
import boto3
|
||
|
import os
|
||
|
import sys
|
||
|
import uuid
|
||
|
from PIL import Image
|
||
|
import PIL.Image
|
||
|
|
||
|
s3_client = boto3.client('s3')
|
||
|
|
||
|
def resize_image(image_path, resized_path):
|
||
|
with Image.open(image_path) as image:
|
||
|
image.thumbnail(tuple(x / 2 for x in image.size))
|
||
|
image.save(resized_path)
|
||
|
|
||
|
def handler(event, context):
|
||
|
for record in event['Records']:
|
||
|
bucket = record['s3']['bucket']['name']
|
||
|
key = record['s3']['object']['key']
|
||
|
download_path='/tmp/{}{}'.format(uuid.uuid4(), key)
|
||
|
upload_path='/tmp/resized-{}'.format(key)
|
||
|
|
||
|
s3_client.download_file(bucket, key, download_path)
|
||
|
resize_image(download_path, upload_path)
|
||
|
s3_client.upload_file(upload_path, '{}resized'.format(bucket), key)
|