1、七牛云存储相关依赖
<!--七牛云存储-->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>7.2.28</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
2、yml文件配置
#七牛云存储配置
qiniu:
accessKey: SVc4nB8AQffickdBj4MoW-lxFX-P8ZzLmuEAcQhh
secretKey: s8-4wL8RkOsCooBEcCJbPOZMuavhBL6HNgKW6vYV
# 对象储存
bucket: music-web # 空间名称
path: https://file.canace.cn/ # 访问域名
3、七牛云Config类配置
import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.io.FileInputStream;
/**
* 七牛云文件上传
*/
@Data
@Component
public class QiNiuYunConfig {
@Value("${qiniu.accessKey}")
private String accessKey;
@Value("${qiniu.secretKey}")
private String secretKey;
@Value("${qiniu.bucket}")
private String bucket;
@Value("${qiniu.path}")
private String path;
public String uploadToQiNiu(FileInputStream file, String filename) {
// 构造一个带指定Zone对象的配置类,注意后面的zone各个地区不一样的
//zone2为华南地区
Configuration cfg = new Configuration(Zone.zone2());
// 其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
// 生成密钥
Auth auth = Auth.create(accessKey, secretKey);
try {
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(file, filename, upToken, null, null);
// 解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
// 这个returnPath是获得到的外链地址
String returnPath = getPath() +putRet.key;
return returnPath;
} catch (QiniuException ex) {
Response r = ex.response;
System.err.println(r.toString());
try {
System.err.println(r.bodyString());
} catch (QiniuException ex2) {
//ignore
}
}
} catch (Exception e) {
e.printStackTrace();
}
return "";
}
}
4、文件上传Controller()
//获取文件名
String fileName = avatorFile.getOriginalFilename();
FileInputStream inputStream = (FileInputStream) avatorFile.getInputStream();
//为文件重命名:uuid+filename
fileName = UUID.randomUUID()+ fileName;
//上传后文件路径
String storeAvatorPath = qiNiuYunConfig.uploadToQiNiu(inputStream, fileName);
//System.out.println(storeAvatorPath);
File dest = new File(fileName);
评论