目前我正在开发一个API,允许用户将文件上传到他们的云存储(位于我的平台上)。云存储位于AWS S3上,文件保存功能使用AWS Lambda Python&使用AWS Chalice开发。
但是,当使用命令chalice local
在我的计算机上本地托管圣杯应用程序时,一切都是文件,文件以正确的格式保存到S3。部署到AWS Lambda后,文件仍然成功保存到s3,但格式错误。这意味着当您下载上传的文件时,它们根本不起作用。
我的代码如下:
"""
upload data to the target path
"""
@app.route('/upload', methods=["PUT"], content_types=['application/json'])
def upload():
try:
user_id = app.current_request.headers["use_user_id"]
file_path = app.current_request.headers["use_data_path"]
target_path = os.path.join("aiii-"+user_id, "data", file_path)
file = app.current_request.raw_body
return savingObjectToBucket(target_path, file)
except Exception as e:
print(e)
return False
文件保存功能:
def savingObjectToBucket(fileName:str, body):
s3 = boto3.resource('s3')
s3.Object("aiii-big-fat-bucket", fileName).put(Body=body)
print("Object successfully saved to bucket.")
return True
有人会帮我一个忙吗?
提前致谢!欣赏它!