java - 将多部分文件上传到 AWS 而无需在本地保存

标签 java amazon-web-services amazon-s3

我编写了一个接受 MultipartFile 的 Rest API。我想将传入的文件上传到 Amazon S3。问题是除了先将其保存到本地系统然后再将其上传到 S3 之外,我不知道其他方法。有什么办法吗?

现在,在本地保存文件时出现问题,我正在寻找解决方法:Multipart transferTo looks for a wrong file address when using createTempFile

最佳答案

是的,你可以这样做。使用 putObjectInputStream 作为参数。 这是示例代码。

public void saveFile(MultipartFile multipartFile) throws AmazonServiceException, SdkClientException, IOException {
    ObjectMetadata data = new ObjectMetadata();
    data.setContentType(multipartFile.getContentType());
    data.setContentLength(multipartFile.getSize());
    BasicAWSCredentials creds = new BasicAWSCredentials("accessKey", "secretKey");
    AmazonS3 s3client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_2).withCredentials(new AWSStaticCredentialsProvider(creds)).build();
    PutObjectResult objectResult = s3client.putObject("myBucket", multipartFile.getOriginalFilename(), multipartFile.getInputStream(), data);
    System.out.println(objectResult.getContentMd5()); //you can verify MD5
}

您可以找到 javadoc here

关于java - 将多部分文件上传到 AWS 而无需在本地保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50248710/

相关文章:

java - 使用文件系统作为数据集的接口(interface)

amazon-web-services - 在 EFS 或 EBS 上使用 CloudFormation 具有持久数据的 ECS

amazon-s3 - 如何在我的 Web 应用程序中使用 Office365 打开文档?

python - python中该公式的具体正则表达式

java - java中的DynamoDb分页查询

java - 命令行 Java 调试器

java - 是否可以在 solr 中存储完整的 html 页面源代码?

java - 排序/比较不同的标准

node.js - 从另一种方法调用 api 网关方法的最佳做法是什么?

ruby - 如何使用 Ruby SDK 设置 Amazon 存储桶策略?