在AWS S3存储桶中使用spring boot实现文件上载的最佳方法是什么?

时间:2018-01-03 13:08:17

标签: spring amazon-s3 spring-boot-test

使用Java Spring启动应用程序(使用Web启动器的Web Service),我需要在S3存储桶中存储图像,有人可以建议我如何实现吗?

在EC2实例中托管应用程序

2 个答案:

答案 0 :(得分:0)

你可以使用带有s3功能的ResourceLoader的spring-cloud-aws:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
    <aws-context:context-credentials>
       <!-- ... -->
     </aws-context:context-credentials>
    <aws-context:context-resource-loader/>
</beans>

将它注入你的bean:

public class SimpleResourceLoadingBean {

@Autowired
private ResourceLoader resourceLoader;

public void writeResource() throws IOException {
        Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
        WritableResource writableResource = (WritableResource) resource;
        try (OutputStream outputStream = writableResource.getOutputStream()) {
            outputStream.write("test".getBytes());
        }
    }
}

在这里您可以找到文档: http://cloud.spring.io/spring-cloud-static/spring-cloud-aws/1.2.1.RELEASE/#_uploading_files

答案 1 :(得分:0)

最后我得到了解决方案 请参阅下面的博客以实现Spring启动AWS s3上传图像和删除图像。

链接Spring boot s3 upload