一、导入maven依赖
<!--七牛云-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.7.0, 7.7.99]</version>
</dependency>
二、配置yml
qiniu:
#AK
accesskey:
#SK
secretkey:
#空间名
bucketname:
#域名
host:
三、QiniuUtils
@Data
@Component
public class Qiniu {
@Value("${qiniu.accesskey}")
private String AccessKey; //AK
@Value("${qiniu.secretkey}")
private String SecretKey; //SK
@Value("${qiniu.bucketname}")
private String bucketName; //空间名称
@Value("${qiniu.host}")
private String host; //域名
public String upload(MultipartFile file, String fileName){
//构造Region对象的配置类
Configuration cfg = new Configuration(Region.region2()); //填写自己的空间地址,官方API有对应简称
UploadManager uploadManager = new UploadManager(cfg);
try {
byte[] uploadBytes = file.getBytes();
Auth auth = Auth.create(AccessKey, SecretKey);
String upToken = auth.uploadToken(bucketName);
Response response = uploadManager.put(uploadBytes, fileName, upToken);
//解析上传成功的结果
DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
return putRet.key;
} catch (Exception ex) {
ex.printStackTrace();
}
return null;
}
}
四、QiniuController
@RestController
@RequestMapping("/qiniu")
public class QiniuController {
@Autowired
private QiniuUtil qiniu ;
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file){
//文件名称
String originalFilename = file.getOriginalFilename() ;
System.out.println("originalFilename--"+originalFilename);
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
String time = format.format(new Date());
String fileName = time + "/" + originalFilename;
//将原始名称修改为:唯一文件名称
//String fileName = UUID.randomUUID().toString() + "." + StringUtils.substringAfterLast(originalFilename, ".");
//调用文件上传
String uploadFileName = qiniu.upload(file, fileName);
return qiniu.getHost() + "/" + uploadFileName;
}
}