一、测试
//删除图片
@Test
public void e(){
OSS oss = new OSSClientBuilder().build("oss-cn-shenzhen.aliyuncs.com","LTAI5t6Rq5vdKLrhsru5gHyn","Eqw7i14zH7m9QFQAPRdQUR4HTizrpw");
oss.deleteObject("srb-file-lwl","b/b.jpg");
oss.shutdown();
}
//添加图片
@Test
public void d(){
OSS oss = new OSSClientBuilder().build("oss-cn-shenzhen.aliyuncs.com","LTAI5t6Rq5vdKLrhsru5gHyn","Eqw7i14zH7m9QFQAPRdQUR4HTizrpw");
// 参数二:给添加的文件命名,文件夹存在直接存入,不存在就创建。
// 参数三:放入要传的文件是哪一个
oss.putObject("srb-file-lwl","b/b.jpg",new File("F:/b.jpg"));
// 上传之后的文件地址
String url = "https://srb-file-lwl.oss-cn-shenzhen.aliyuncs.com/b/b.jpg";
oss.shutdown();
}
二、整合到微服务
创建服务名:service-oss
依赖:
<!--aliyunOSS-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
配置文件:
server:
port: 8130 # 服务端口
spring:
profiles:
active: dev # 环境设置
application:
name: service-oss # 服务名
aliyun:
oss:
endpoint: 你的endponit
keyId: 你的阿里云keyid
keySecret: 你的阿里云keysecret
bucketName: srb-file
创建工具类:
package com.atguigu.srb.oss.util;
@Data
@Component
@ConfigurationProperties(prefix = "aliyun.oss")
public class OssProperties implements InitializingBean {
private String endpoint;
private String keyId;
private String keySecret;
private String bucketName;
public static String ENDPOINT;
public static String KEY_ID;
public static String KEY_SECRET;
public static String BUCKETNAME;
@Override
public void afterPropertiesSet() throws Exception {
System.out.println("当读取完所有属性后");
System.out.println(endpoint);
System.out.println(keyId);
System.out.println(keySecret);
System.out.println(keySecret);
System.out.println("将读取到的属性赋值静态属性");
KEY_ID = keyId;
ENDPOINT = endpoint;
KEY_SECRET = keySecret;
BUCKETNAME = bucketName;
}
}
service层:
public interface OssService {
// 添加照片
String uploadImage(MultipartFile multipartFile, String module);
// 删除照片
void removeImage(String url);
}
@Service
public class OssServiceImpl implements OssService {
@Override
public String uploadImage(MultipartFile multipartFile, String module) {
// 上传图片文件
OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
String fileName = UUID.randomUUID().toString();
String originalFilename = multipartFile.getOriginalFilename();
String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
try {
oss.putObject(OssProperties.BUCKETNAME,module+"/"+fileName+"."+filenameExtension,multipartFile.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
// 返回图片访问url,将来提交表单存储数据库
String url = "https://"+OssProperties.BUCKETNAME+"."+OssProperties.ENDPOINT+"/"+module+"/"+fileName+"."+filenameExtension;
oss.shutdown();
return url;
}
@Override
public void removeImage(String url) {
OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
String subUrl = url.substring(("https://" + OssProperties.BUCKETNAME + "." + OssProperties.ENDPOINT + "/").length());
oss.deleteObject(OssProperties.BUCKETNAME,subUrl);
oss.shutdown();
}
}
controller
@Service
public class OssServiceImpl implements OssService {
@Override
public String uploadImage(MultipartFile multipartFile, String module) {
// 上传图片文件
OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
String fileName = UUID.randomUUID().toString();
String originalFilename = multipartFile.getOriginalFilename();
String filenameExtension = StringUtils.getFilenameExtension(originalFilename);
try {
oss.putObject(OssProperties.BUCKETNAME,module+"/"+fileName+"."+filenameExtension,multipartFile.getInputStream());
} catch (IOException e) {
e.printStackTrace();
}
// 返回图片访问url,将来提交表单存储数据库
String url = "https://"+OssProperties.BUCKETNAME+"."+OssProperties.ENDPOINT+"/"+module+"/"+fileName+"."+filenameExtension;
oss.shutdown();
return url;
}
@Override
public void removeImage(String url) {
OSS oss = new OSSClientBuilder().build(OssProperties.ENDPOINT,OssProperties.KEY_ID,OssProperties.KEY_SECRET);
String subUrl = url.substring(("https://" + OssProperties.BUCKETNAME + "." + OssProperties.ENDPOINT + "/").length());
oss.deleteObject(OssProperties.BUCKETNAME,subUrl);
oss.shutdown();
}
}
主启动类:
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@ComponentScan({"com.atguigu.common","com.atguigu.srb.oss"})
public class ServiceOssApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceOssApplication.class,args);
}
}
三、 如何整合阿里云oss接口,实现对象数据存储功能?
A 注册登录阿里云
B 开通oss对象存储服务
C 在线测试,创建bucket,上传测试
D 创建和整合oss接口服务(service-oss)
E 测试sdk,实现接口:上传接口,和删除接口
四、测试: