in python-app-backend/lambda/pre-signed-url-generator/main.py [0:0]
def lambda_handler(event, context):
content_type = event.get('queryStringParameters', {}).get('content-type', '')
file_extension = event.get('queryStringParameters', {}).get('file-extension', '')
if content_type == '' or file_extension == '':
return {
"statusCode": 400,
"body": json.dumps({
"message": "Both content-type and file-extension need to passed as query param!"
})
}
person_name = event['queryStringParameters'].get('person-name', '')
metadata = {
'fullname': person_name
}
file_name = str(uuid.uuid4()) + file_extension
s3_image_path = 'index/static/' + file_name
pre_signed_image_url = s3_client.generate_presigned_url('put_object',
Params={'Bucket': s3_bucket,
'Key': s3_image_path,
'ContentType': content_type,
'Metadata': metadata},
ExpiresIn=60)
return {
"statusCode": 200,
"headers": {
"Access-Control-Allow-Origin": "*"
},
"body": json.dumps({
"uploadURL": pre_signed_image_url,
"fileName": file_name
})
}