1.引入jar
<!-- 亚马逊S3文件服务 -->
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>s3</artifactId>
<version>2.15.20</version>
</dependency>
2. 设置可读属性
private static S3Client s3;
@Autowired
S3Config s3Config;
/**
* 上传文件
*
* @param file
* @return fileKey
*/
public String upload(MultipartFile file) throws IOException {
String fileKey = null;
fileKey = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN) + "/" + IdUtil.simpleUUID()+"."+file.getOriginalFilename();
// 设置公共可读属性
PutObjectRequest objectRequest = PutObjectRequest.builder().bucket(s3Config.getBucketName()).key(fileKey).acl(ObjectCannedACL.PUBLIC_READ).build();
s3.putObject(objectRequest, RequestBody.fromBytes(file.getBytes()));
GetUrlRequest request = GetUrlRequest.builder().bucket(s3Config.getBucketName()).key(fileKey).build();
s3.utilities().getUrl(request);
return fileKey;
}
@Component
@ConfigurationProperties(prefix="aws.s3")
@Data
public class S3Config {
private String accessKey;
private String secretKey;
private String bucketName;
private String region;
}