要解决“AWS Lambda上传文件已损坏”的问题,你可以尝试以下方法:
import hashlib
def lambda_handler(event, context):
# 获取上传文件的数据
file_data = event['file_data']
# 获取上传文件的MD5校验和
file_checksum = event['file_checksum']
# 计算上传文件的MD5校验和
md5 = hashlib.md5(file_data).hexdigest()
# 比较校验和是否匹配
if md5 == file_checksum:
# 文件完整,继续处理
# ...
return "File uploaded successfully."
else:
# 文件已损坏
return "File is corrupted."
put_object
方法来上传文件。以下是一个使用Boto3库上传文件到S3的示例代码:import boto3
def lambda_handler(event, context):
# 创建S3客户端
s3 = boto3.client('s3')
# 获取上传文件的数据和文件名
file_data = event['file_data']
file_name = event['file_name']
try:
# 上传文件到S3
s3.put_object(Body=file_data, Bucket='your_bucket_name', Key=file_name)
return "File uploaded successfully."
except Exception as e:
# 文件上传失败
return "File upload failed: " + str(e)
使用以上方法之一,你可以在Lambda函数中验证文件的完整性,并尽可能避免“文件已损坏”的问题。