Java SpringBoot实现上传文件到AWS S3

简单记录一下在Springboot中上传文件到AWS S3存储服务的代码。

application.xml中添加aws相关配置:

新建一个AwsS3Componment类来执行上传文件操作:

因为使用的服务有设置endpoint,所以这里需要使用下面这一行完成endpoint的设置:

如果不设置endpoint就会收到下面这样的报错:

异常信息中提示了AccessKey无效——虽然我的AccessKey是有效的。

endpoint的这行配置中还设置了region信息。如果不需要设置endpoint,就得补上region的配置:

下面是执行上传的代码:

这里是通过File实例执行的上传。有时候会需要直接通过文件流执行上传,此时可以使用下面的代码:

注意这里的setContentLength()最好配置一下。不设置会在处理的时候给出WARN。根据方法文档也可以看到,如果不设置,在上传的时候就会先在内存中缓存整个信息流来计算文件长度。

大体上就是这样了。

End!

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据