/**
* 上传文件到七牛云服务器后返回上传路径(根据MultipartFile)
*
* @Title uploadFileToQiNiu
* @return String 文件访问全路径
* @date 2017年7月13日 下午2:17:41
*/
public String uploadFileToQiNiu(HttpServletRequest request, File file, String pathType,String accessKey,String secretKey,String domain,String bucket) {
String uploadPath = "";
try {
if (!file.exists()) {
throw new Exception("文件没有找到");
}
if (file.exists()) {
// 构造一个带指定Zone对象的配置类
Configuration cfg = new Configuration(Zone.zone2());
// ...其他参数参考类注释
UploadManager uploadManager = new UploadManager(cfg);
// key位文件名
String fileName = file.getName();
String type = fileName.substring(fileName.lastIndexOf(".") + 1);
String key = pathType + File.separator + (UUID.randomUUID().toString().replace("-", "")) + "." + type;
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket);
try {
Response response = uploadManager.put(file, key.replaceAll("\\\\", "/"), upToken);
// 解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
log.info(putRet.key);
log.info(putRet.hash);
uploadPath = domain + key;
} catch (QiniuException ex) {
Response r = ex.response;
log.error(r.toString());
try {
log.error(r.bodyString());
} catch (QiniuException ex2) {
// ignore
}
} catch (IOException e) {
e.printStackTrace();
}
}
if (uploadPath.contains("\\")) {
uploadPath = uploadPath.replace("\\", "/"); // 替换左斜杠
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return uploadPath;
}