@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; } }