概述
项目需要,后台所有图片需要上传到七牛云。
以下是自己写的工具类
实现
/**
* 七牛云工具类
*/
public class QiNiuUtils {
private Logger log = LoggerFactory.getLogger(QiNiuUtils.class);
private static UploadManager uploadManager;
private static com.qiniu.storage.Configuration cfg;
private static String accessKey = "";
private static String secretKey = "";
public QiNiuUtils() {
try {
accessKey = XxlConfClient.get("default.qiniuyun_accesskey", "");
secretKey = XxlConfClient.get("default.qiniuyun_secretkey", "");
log.info("七牛云 accessKey:" + accessKey + " ,secretKey:" + secretKey);
cfg = new com.qiniu.storage.Configuration(Zone.autoZone());
uploadManager = new UploadManager(cfg);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 刷新目录
*
* @param folders
* 待刷新的目录列表,目录必须以 / 结尾
* @return
*/
public boolean refreshFolders(String[] folders) {
if (null == folders) {
return false;
}
StringBuilder sBuilder = new StringBuilder();
sBuilder.append(getCdnDomainOfBucket());
sBuilder.append(getFolder());
for (int i = 0; i < folders.length; i++) {
folders[i] = sBuilder.toString() + folders[i];
}
try {
// 单次方法调用刷新的目录不可以超过10个,另外刷新目录权限需要联系技术支持开通
CdnResult.RefreshResult result = getCdnManager().refreshDirs(folders);
if (null == result || 200 != result.code) {
return false;
}
return true;
} catch (Exception e) {
log.error("refreshFolders Exception:" + e.getMessage());
return false;
}
}
/**
* 刷新文件cdn
*
* @param fileUrls
* 待刷新的链接列表
* @return
*/
public boolean refreshFiles(String[] fileUrls) {
if (null == fileUrls) {
return false;
}
StringBuilder sBuilder = new StringBuilder();
sBuilder.append(getCdnDomainOfBucket());
sBuilder.append(getFolder());
for (int i = 0; i < fileUrls.length; i++) {
fileUrls[i] = sBuilder.toString() + fileUrls[i];
}
try {
// 单次方法调用刷新的链接不可以超过100个
CdnResult.RefreshResult result = getCdnManager().refreshUrls(fileUrls);
if (null == result || 200 != result.code) {
return false;
}
return true;
} catch (Exception e) {
log.error("refreshFiles Exception:" + e.getMessa