从Java服务器到S3存储桶的多部分文件上传已损坏即使在API Gateway中启用了多部分/表单数据之后

问题描述

我目前正在使用AWS开发工具包将文件从Java服务器上载到S3存储桶中。在我的本地计算机中,文件可以正确上载并且可以访问。但是当我对我的应用程序进行dockerize并在Fargate中运行时,所有文件都开始了我上传文件损坏了。

我发现您必须在API网关中允许多部分/表单数据,但是即使问题仍然存在,任何帮助之手也将不胜感激

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();
ObjectMetadata Metadata = new ObjectMetadata();
Metadata.setContentdisposition("inline");
Metadata.setContentLength(file.length());
InputStream targetStream = new FileInputStream(file);
Metadata.setContentType("image/jpeg");
PutObjectRequest request = new PutObjectRequest(bucketName,bucketFolderName + attachmentName,file);
request.setMetadata(Metadata);
s3Client.putObject(request.withCannedAcl(CannedAccessControlList.PublicRead));

This is how i am calling the api

Headers

API Gateway settings

解决方法

我发现了问题,每次更新API Gateway时都必须再次部署