问题描述
当我将图像上传到直接Backet时,它可以正常工作,但是如果文件夹出现错误
Line => s3_client.download_file(存储桶,密钥,下载路径)
download_path。
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)
print('Bucket Path',bucket)
print('Key path',key)
print('Download path',download_path)
print('Upload path',upload_path)
s3_client.download_file(bucket,key,download_path)
resize_image(download_path,upload_path)
s3_client.upload_file(upload_path,'{}-resized'.format(bucket),key)
解决方法
您似乎正在使用Sample Amazon S3 function code - AWS Lambda中的代码。
该代码还有一行删除斜杠的行:
for record in event['Records']:
bucket = record['s3']['bucket']['name']
key = unquote_plus(record['s3']['object']['key'])
tmpkey = key.replace('/','') # <--- This line here!
download_path = '/tmp/{}{}'.format(uuid.uuid4(),tmpkey) # <--- Used here
upload_path = '/tmp/resized-{}'.format(tmpkey)
s3_client.download_file(bucket,key,download_path)
resize_image(download_path,upload_path)
s3_client.upload_file(upload_path,'{}-resized'.format(bucket),key)
这使Python无需创建分层目录即可存储文件。