阿里云OSS配置 及模板代码
由于存储服务, 也是属于基础通用服务, 所以需要将OSS的基础依赖、配置定义在 common 工程中。
添加依赖
< dependency>
< groupId> com.aliyun.oss</ groupId>
< artifactId> aliyun-sdk-oss</ artifactId>
</ dependency>
common添加工具类 需要用时直接使用注解注入即可
import com. aliyun. oss. OSS;
import com. aliyun. oss. OSSClientBuilder ;
import com. aliyun. oss. model. PutObjectResult ;
import com. nineclock. common. enums. ResponseEnum ;
import com. nineclock. common. exception. NcException ;
import lombok. Data ;
import lombok. extern. slf4j. Slf4j ;
import org. springframework. boot. context. properties. ConfigurationProperties ;
import org. springframework. stereotype. Component ;
import java. io. InputStream ;
import java. time. LocalDateTime ;
import java. time. format. DateTimeFormatter ;
@Component
@ConfigurationProperties ( prefix = "aliyun.oss" )
@Slf4j
@Data
public class OssClientUtils {
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
private String host;
public String uploadFile ( String fileName, InputStream inputStream) {
OSS ossClient = new OSSClientBuilder ( ) . build ( "http://" + endpoint, accessKeyId, accessKeySecret) ;
fileName = LocalDateTime . now ( ) . format ( DateTimeFormatter . ofPattern ( "yyyyMMddHHmmssSSS" ) ) + "-" + fileName;
try {
PutObjectResult objectResult = ossClient. putObject ( bucketName, fileName, inputStream) ;
log. info ( "文件 {} 上传成功, 上传的结果为: {}" , fileName, objectResult. getResponse ( ) ) ;
return "https://" + host + "/" + fileName;
} catch ( Exception e) {
log. error ( "文件上传失败,错误信息:" , e) ;
throw new NcException ( ResponseEnum . FILE_UPLOAD_ERROR) ;
} finally {
ossClient. shutdown ( ) ;
}
}
}
系统微服务中的调用者 添加yml 配置信息
aliyun :
oss :
accessKeyId :
accessKeySecret :
bucketName :
endpoint :
host :
例:调用
@Autowired
private OssClientUtils ossClientUtils;
@Test
public void testUpload ( ) throws Exception {
String url = ossClientUtils. uploadFile ( "abc.jpg" , new FileInputStream ( "D:\\14.jpg" ) ) ;
}