1.导包
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.7.0, 7.10.99]</version>
</dependency>
2.在配置文件添加 AccessKey/SecretKey
# 七牛云
qiniu.accessKey=*****
qiniu.accessSecretKey=*****
3.添加utils类
package com.qy.utils;
import com.alibaba.fastjson.JSON;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
@Component
@Slf4j
public class QinNuUtils {
public static final String url = "";
@Value("${qiniu.accessKey}")
private String accessKey;
@Value("${qiniu.accessSecretKey}")
private String accessSecretKey;
public boolean upload(MultipartFile file, String fileName){
Configuration cfg = new Configuration(Region.region1());
UploadManager uploadManager = new UploadManager(cfg);
String bucket = "qinyugg";
try {
byte[] uploadBytes = file.getBytes();
Auth auth = Auth.create(accessKey, accessSecretKey);
String upToken = auth.uploadToken(bucket);
Response response = uploadManager.put(uploadBytes, fileName, upToken);
DefaultPutRet putRet = JSON.parseObject(response.bodyString(), DefaultPutRet.class);
return true;
} catch (Exception ex) {
ex.printStackTrace();
}
return false;
}
public static String download(String name) throws UnsupportedEncodingException {
String fileName = name;
String domainOfBucket = QinNuUtils.url;
String encodedFileName = URLEncoder.encode(fileName, "utf-8").replace("+", "%20");
String finalUrl = String.format("%s/%s", domainOfBucket, encodedFileName);
System.out.println(finalUrl);
log.info("Successful{}", finalUrl);
return finalUrl;
}
}
4.Controller层
@PostMapping("/upload")
public Result upload(@RequestParam("file") MultipartFile file) {
String filename = file.getOriginalFilename();
filename = UUID.randomUUID().toString() + "." + StringUtils.substringAfter(filename, ".");
boolean upload = qinNuUtils.upload(file, filename);
if (upload) {
System.out.println(QinNuUtils.url + filename);
filename=QinNuUtils.url + filename;
return Result.success( filename);
}
return Result.fail(120,"失败");
}
Ps Result
package com.qy.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Result {
private Boolean success;
private Integer code;
private String msg;
private Object data;
public static Result success(Object data) {
return new Result(true, 200, "success", data);
}
public static Result fail(Integer code, String msg) {
return new Result(false, code, msg, null);
}
}