首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS Lambda - PDF上传到S3返回空白页面

AWS Lambda - PDF上传到S3返回空白页面
EN

Stack Overflow用户
提问于 2020-10-25 00:02:12
回答 1查看 254关注 0票数 0

我希望上传一个PDF声明,其中包含一些页面的数据,但是上传到S3的PDF一直返回空白页面。似乎大多数解决方案都围绕着将Buffer类型转换为base64,我试过了,得到的结果是空白的。

我已经在API Gateway multipart/form-data上手动添加了二进制媒体类型,但结果仍然是空白的pdf。

我如何确保pdf不是空白的?

代码语言:javascript
复制
import { Handler, Context, Callback } from "aws-lambda";
import S3, { PutObjectRequest } from "aws-sdk/clients/s3";

import httpMultipartBodyParser from "@middy/http-multipart-body-parser";
import httpErrorHandler from "@middy/http-error-handler";
import cors from "@middy/http-cors";
import middy from "@middy/core";
import createError from "http-errors";

const s3 = new S3();

const anonymizer: Handler = async (
  event: any,
  _context: Context,
  callback: Callback
) => {
  const {
    emailAddress,
    pdf: { filename, mimetype, content },
  } = event.body;

  const uploadRequest: PutObjectRequest = {
    Bucket: `anon-${process.env["NODE_ENV"]}`,
    Key: `${emailAddress}/${filename}`,
    ContentType: mimetype,
    Body: content,
  };

  try {
    const { Location } = await s3.upload(uploadRequest).promise();
    callback(null, {
      statusCode: 200,
      body: JSON.stringify({ fileLocation: Location }),
    });
  } catch (error) {
    throw createError(error.statusCode, error.errorMessage, error);
  }
};

export const anonymizerHandler = middy(anonymizer)
  .use(httpMultipartBodyParser())
  .use(httpErrorHandler())
  .use(cors());
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-25 10:53:08

原来它在API Gateway上添加了二进制媒体类型multipart/form-data,这必须部署,在更改生效之前花了一段时间,现在我不再得到空白PDF :)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64515356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档