我希望上传一个PDF声明,其中包含一些页面的数据,但是上传到S3的PDF一直返回空白页面。似乎大多数解决方案都围绕着将Buffer类型转换为base64,我试过了,得到的结果是空白的。
我已经在API Gateway multipart/form-data上手动添加了二进制媒体类型,但结果仍然是空白的pdf。
我如何确保pdf不是空白的?
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());发布于 2020-10-25 10:53:08
原来它在API Gateway上添加了二进制媒体类型multipart/form-data,这必须部署,在更改生效之前花了一段时间,现在我不再得到空白PDF :)。
https://stackoverflow.com/questions/64515356
复制相似问题