700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > aws 部署python lambda_python - 如何使用Aws Lambda(python)接收文件 - 堆栈内存溢出

aws 部署python lambda_python - 如何使用Aws Lambda(python)接收文件 - 堆栈内存溢出

时间:2018-08-03 04:44:48

相关推荐

aws 部署python lambda_python - 如何使用Aws Lambda(python)接收文件 - 堆栈内存溢出

我正试图弄清楚如何通过Python中的API调用接收浏览器发送的文件。

允许Web客户端发送任何类型的文件(例如.txt,.docx,.xlsx,...)。 我不知道我是否应该使用二进制文件。

想法是在S3之后保存文件。 现在我知道可以使用像Aws Amplify这样的js库并生成一个临时URL,但我对这个解决方案不太感兴趣。

任何帮助表示赞赏,我已经在Python中广泛搜索了一个解决方案,但我找不到任何实际工作的东西!

我的API是私有的,我使用无服务器进行部署。

files_post:

handler: post/post.post

events:

- http:

path: files

method: post

cors: true

authorizer:

name: authorizer

arn: ${cf:lCognito.CognitoUserPoolMyUserPool}

编辑

我有一个半解决方案适用于文本文件但不适用于PDF,XLSX或图像,如果有人让我超级开心

from cgi import parse_header, parse_multipart

from io import BytesIO

import json

def post(event, context):

print event['queryStringParameters']['filename']

c_type, c_data = parse_header(event['headers']['content-type'])

c_data['boundary'] = bytes(c_data['boundary']).encode("utf-8")

body_file = BytesIO(bytes(event['body']).encode("utf-8"))

form_data = parse_multipart(body_file, c_data)

s3 = boto3.resource('s3')

object = s3.Object('storage', event['queryStringParameters']['filename'])

object.put(Body=form_data['upload'][0])

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。