将分段文件上传到 AWS 而不将其保存在本地

Ari*_*deh 6 java amazon-s3 amazon-web-services

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

现在,在本地保存文件时存在问题,我正在寻找解决方法:Multipart transferTo 在使用 createTempFile 时查找错误的文件地址

Nit*_*iya 10

是的,你可以这样做。putObject使用它InputStream作为参数消耗 。这是示例代码。

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
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里找到 javadoc