要解决这个问题,可以使用AWS Lambda和Python编写一个函数来处理图片。以下是一个示例代码:
import boto3
def lambda_handler(event, context):
s3 = boto3.client('s3')
# 从event中获取S3桶名称和对象键
bucket = event['Records'][0]['s3']['bucket']['name']
key = event['Records'][0]['s3']['object']['key']
# 下载图片到临时文件夹
tmp_path = '/tmp/' + key
s3.download_file(bucket, key, tmp_path)
# 在这里添加对图片的处理逻辑,例如使用PIL库进行图片处理、修改或保存等
# 将处理后的图片上传回S3桶
processed_key = 'processed/' + key
s3.upload_file(tmp_path, bucket, processed_key)
# 删除临时文件
os.remove(tmp_path)
return {
'statusCode': 200,
'body': '图片处理完成'
}
使用上述代码,您可以部署一个AWS Lambda函数,该函数会在S3桶中的图像上传时自动触发。函数会下载图像到临时文件夹,对其进行处理,然后将处理后的图像上传回S3桶。
请注意,这只是一个示例代码,您可能需要根据自己的需求进行修改和调整。例如,您可能需要添加异常处理、图像处理逻辑、日志记录等。