spring Boot集成七牛云
【代码】spring Boot集成七牛云。
·
1、在pom文件中添加依赖
<dependencies>
<!-- 七牛云SDK -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.13.0, 7.13.99]</version>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
<optional>true</optional>
</dependency>
</dependencies>
2、在配置文件中添加SSO信息
# 七牛云
qiniu:
oss:
access-key: *** # 请从七牛云工作台-个人中心-密钥管理获取
secret-key: *** # 请从七牛云工作台-个人中心-密钥管理获取
bucket: demo # 七牛云存储空间名称
directory: upload/ # 自定义存储空间内目录
domain: https://qiniu.demo.com/ # 存储空间自定义域名,请提前在存储空间中进行配置
3、创建七牛云配置类
/**
* 七牛云OSS相关配置
*/
@Configuration
@ConfigurationProperties(prefix = "qiniu.oss")
@Getter
@Setter
public class QiniuConfig {
/**
* AC
*/
private String accessKey;
/**
* SC
*/
private String secretKey;
/**
* 存储空间
*/
private String bucket;
/**
* 上传目录
*/
private String directory;
/**
* 访问域名
*/
private String domain;
}
4、创建文件操作服务类
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import com.ruoyi.file.config.QiniuConfig;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.qiniu.storage.Region;
import java.io.IOException;
import java.util.UUID;
import com.qiniu.storage.Configuration;
/**
* 七牛云对象存储文件服务
*/
@Service("qiniuFileService")
public class QiniuFileServiceImpl {
private final QiniuConfig qiniuConfig;
public QiniuFileServiceImpl(QiniuConfig qiniuConfig) {
this.qiniuConfig = qiniuConfig;
}
public String upload(MultipartFile file) throws IOException {
if (file.isEmpty()) {
throw new RuntimeException("文件是空的");
}
// 创建上传token
Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey());
String upToken = auth.uploadToken(qiniuConfig.getBucket());
// 设置上传配置,Region要与存储空间所属的存储区域保持一致
Configuration cfg = new Configuration(Region.huadongZheJiang2());
// 创建上传管理器
UploadManager uploadManager = new UploadManager(cfg);
String originalFilename = file.getOriginalFilename();
// 构造文件目录和文件名
assert originalFilename != null;
String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
String fileKey = qiniuConfig.getDirectory() + UUID.randomUUID() + suffix;
// 上传文件
uploadManager.put(file.getInputStream(), fileKey, upToken, null, null);
// 返回文件url
return qiniuConfig.getDomain() + fileKey;
}
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)