如何向AWS Lambda函数传入文本文件?除键值对外还有其他方案吗?
AWS Lambda传入文本文件的其他可行方案
当然不是只能用你说的键值对方式,还有这些常用方案:
通过S3触发+读取S3文件:把文本文件上传到S3桶,配置S3事件触发Lambda。Lambda触发时会收到包含文件信息的事件payload,你可以在函数里用AWS SDK直接读取S3里的文件内容,不用把文件数据直接塞进请求体。示例事件结构大概是:
{ "Records": [ { "s3": { "bucket": { "name": "your-bucket" }, "object": { "key": "myfile.txt" } } } ] }函数里直接调用
get_object方法读取文件内容即可。直接传入原始文本内容:如果不需要文件名,你可以直接把文本内容作为请求的body传入,比如调用Lambda时请求body就是
"This is the text in the text file",函数里直接读取event的body部分即可,不用包装成键值对。使用Base64编码传递:如果文本包含特殊字符,可把文件内容做Base64编码后传入,比如请求体是
{"fileContentBase64": "VGhpcyBpcyB0aGUgdGV4dCBpbiB0aGUgdGV4dCBmaWxl"},函数里解码后就能拿到原始文本。通过API Gateway传递文件上传请求:如果是通过API Gateway触发Lambda,可以配置支持
multipart/form-data类型的请求,前端可直接上传文件,Lambda能从请求体里解析出文件的内容和文件名,不用手动包装成JSON键值对。
内容的提问来源于stack exchange,提问作者Vikram
相关产品推荐
相关产品推荐

