官方定义:
阿里云对象存储OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,可提供99.9999999999%(12个9)的数据持久层,99.995%的数据可用性。多种存储类型供选择,群面优化存储成本。
导入相关依赖:
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
配置类:
@Data
@ConfigurationProperties(prefix="tanhua.oss")
public class OssProperties{
private String accessKey;
private String secret;
private String bucketName;
private String url;
private String endpoint;
}
模板类:
package com.tanhua.autoconfig.template;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.tanhua.autoconfig.properties.OssProperties;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
public class OssTemplate{
private OssProperties properties;
public OssTemplate(OssProperties properties){
this.properties=properties;
}
public String upload(String filename, InputStream inputStream){
filename = new SimpleDateFormat("yyyy-MM-dd").format(new Date())
+ "/" + UUID.randomUUID()
+ filename.substring(filename.lastIndexOf("."));
String endpoint = properties.getEndpoint();
String accessKeyId = properties.getAccessKey();
String accessKeySecret = properties.getSecret();
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ossClient.putObject(properties.getBucketName(), filename, inputStream);
ossClient.shutdown();
return properties.getUrl() + "/" + filename;
}
}
注册到Spring IoC容器中:
package com.tanhua.autoconfig;
import com.tanhua.autoconfig.properties.OssProperties;
import com.tanhua.autoconfig.template.OssTemplate;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
@EnableConfigurationProperties({classes=OssTemplate.class})
public class TanhuaAutoConfiguration{
@Bean
public OssTemplate ossTemplate(OssProperties properties){
return new OssProperties(properties);
}
}
在application.yml中添加OSS配置:
oss:
accessKey: LTAI4GKgob9vZ53k2SZdyAC7
secret: LHLBvXmILRoyw0niRSBuXBZewQ30la
endpoint: oss-cn-beijing.aliyuncs.com
bucketName: tanhua001
url: https://tanhua001.oss-cn-beijing.aliyuncs.com/