@Configuration
@ConfigurationProperties(prefix = "qiniu")
public class QiNiuConfig {
private String accessKey;
private String secretKey;
/** 要上传的空间名 */
private String bucket;
/** 对应存储空间的访问域名 */
private String path;
/** 需要上传的文件所在的目录*/
private String filePath;
public String getFilePath() {
return filePath;
}
public void setFilePath(String filePath) {
this.filePath = filePath;
}
public String getAccessKey() {
return accessKey;
}
public String getSecretKey() {
return secretKey;
}
public String getBucket() {
return bucket;
}
public String getPath() {
return path;
}
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
public void setBucket(String bucket) {
this.bucket = bucket;
}
public void setPath(String path) {
this.path = path;
}
}
/**
*
* @param filePath 文件路径
* @param qiNiuConfig 七牛云上传信息配置
* @return
*/
public class QiNiuUtil {
private static final Logger logger = LoggerFactory.getLogger(QiNiuUtil.class);
public static Map<String, String> qiniuUpload(String filePath, QiNiuConfig qiNiuConfig) {
//上传到七牛后保存的文件名
String key;
//密钥配置
Auth auth = Auth.create(qiNiuConfig.getAccessKey(), qiNiuConfig.getSecretKey());
//自动识别要上传的空间的初村区域是华东、华北、华南
Zone z = Zone.autoZone();
com.qiniu.storage.Configuration c = new com.qiniu.storage.Configuration(z);
//创建上传对象
UploadManager uploadManager = new UploadManager(c);
//获取upToken
String upToken = auth.uploadToken(qiNiuConfig.getBucket());
//开始时间
long startTime = System.currentTimeMillis();
String timeString = String.valueOf(startTime);
Map<String, String> map = new HashMap<String, String>();
File file = new File(filePath);
if (file.exists()) {
try {
key = filePath.substring(filePath.lastIndexOf("/") + 1);
Response response = uploadManager.put(filePath, key, upToken);
map.put("state", "1");
map.put("info", "上传七牛成功");
map.put("fileName", key);
map.put("qiniuUrl", qiNiuConfig.getPath() + "/" + key);
logger.info("上传成功", response.body());
} catch (QiniuException e) {
map.put("state", "0");
map.put("info", "上传七牛失败");
logger.error("上传七牛异常={}");
logger.error(e.getMessage(), e);
} finally {
//上传七牛完成后删除本地文件
File deleteFile = new File(filePath);
logger.info("删除: " + filePath);
if (deleteFile.exists()) {
deleteFile.delete();
}
}
}
//结束时间
long endTime = System.currentTimeMillis();
logger.info("______________上传用时:={}", endTime - startTime + "ms");
return map;
}
}版权声明:本文为ray_352801250原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。