准备工作:
注入oss 依赖包
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.5.0</version>
</dependency>
拿到服务器的endpoint (服务器节点)accessKeyId (密钥Id)accessKeySecret (密钥)这三个东西在购买服务器必须给你配备
实现:
实现其实并不难,只需要注意一些小细节就好:
- 定义
@Value("${aliyun.oss.endpoint:oss-cn-shenzhen.aliyuncs.com}")
private String endpoint;
类似如此将endpoint 配置好并定义出来,如果事采用配置文件统一管理则要注意顺序和层级必须保持一致;
String bucket = "xxx-store-pic";
定义服务器上一个存储图片的仓库
- 上传
将接收到的图片换个名字(服务器上默认把同名的文件覆盖掉)
String fileName = file.getOriginalFilename();
Integer i = fileName.lastIndexOf(".") + 1;
String fileExtensionName = fileName.substring(i);
String uploadFileName = UUID.randomUUID().toString() + "." + fileExtensionName;
通过以上的转化可以把每张图片名转成唯一一个UUID
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
创建一个OSSClient对象来实现上传
将filePath的格式调整好
String filePath = profile + FILE_SEPARATOR + uploadFileName;
...
try{
PutObjectResult result = client.putObject(bucket, filePath, file.getInputStream());
}catch{
Exception e
}...
通过client的putObject方法将文件上传
最后通过判断你的result 来判断是否已经传成功。