使用boto3通过AWS lambda将文件保存到AWS S3不会保存正确的文件

时间:2018-03-31 05:31:47

标签: amazon-web-services amazon-s3 aws-lambda aws-sdk boto3

目前我正在开发一个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

有人会帮我一个忙吗?

提前致谢!欣赏它!

0 个答案:

没有答案