【问题标题】:Upload pdf base64 to Amazon S3 using Lambda使用 Lambda 将 pdf base64 上传到 Amazon S3
【发布时间】:2020-08-30 05:58:42
【问题描述】:

我是 S3 lambda 的新手,我创建了一个示例 lambda 函数并添加到 api 网关,现在我可以从邮递员调用 lambda 函数。我需要将带有 pdf base64 的 json 输入发送到 lambda 函数。

{
  "documents": [
    {
      "documentBase64": "SGVsbG8=....",
      "documentId": "11",
      "fileExtension": "pdf",
      "name": "sample",
      "order": "1"
    }
  ]
}

在 s3 lambda 函数中,我需要读取此输入并将其上传为 pdf。 我怎样才能做到这一点? lambda函数实现可以是node js或者pyhthon或者java。
感谢您的快速帮助。

谢谢你, 斯里

【问题讨论】:

    标签: aws-lambda


    【解决方案1】:

    我不确定 AWS lambda 服务的详细信息及其要求,但您可以像这样在 python 中加载 base64 对象:

    import io
    
    document_base64 = ...
    
    byte_obj = io.BytesIO(base64.b64decode(document_base64))
    

    我假设您无法在 lambda 服务上写入文件,但您可以在其他可以写入磁盘的地方执行此操作:

    with open('filename.pdb', 'wb') as f:
        f.write(base64.b64decode(document_base64))
    

    【讨论】:

    • 感谢您的快速输入。现在我的输入包含{ "documents": [ { "documentId": "11", "fileExtension": "pdf", "name": "sample", "body": "<?xml ...<DocInformation><Documents><Document>SGVsbG8=....", } ] } 那么如何在输入 json 有效负载中获取正文 XML base64 有效负载?一旦我得到那个base64,我就可以试试你的代码。谢谢!!
    • @sridb 所以body 的值也是base64 编码的?您也可以在那里使用base64 库,就像它在响应中的使用方式一样。 base64.b64.decode(<value-of-body>) 解码值并获得您的 xml 文本。
    • 是 base64 而不是整个正文。所以我需要从 json 读取正文,解析 xml,获取 base64 代码。我这样做了,
    • jstr = json.dumps(event) y = json.loads(jstr) docuContent = y["body"] root = ET.fromstring(docuContent) print(root.tag)。有更好的主意吗?
    猜你喜欢
    • 2021-08-22
    • 2015-09-05
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-22
    • 2020-09-04
    • 2014-06-10
    • 1970-01-01
    相关资源
    最近更新 更多