diff --git a/pom.xml b/pom.xml index 2403264..c3609aa 100644 --- a/pom.xml +++ b/pom.xml @@ -154,6 +154,32 @@ + + com.squareup.okhttp3 + okhttp + 3.14.2 + compile + + + com.google.code.gson + gson + 2.8.5 + compile + + + com.qiniu + happy-dns-java + 0.1.6 + test + + + junit + junit + 4.12 + test + + + diff --git a/src/main/java/com/grail/common/core/utils/QiNiuUpload.java b/src/main/java/com/grail/common/core/utils/QiNiuUpload.java index 0eaee23..3a72987 100644 --- a/src/main/java/com/grail/common/core/utils/QiNiuUpload.java +++ b/src/main/java/com/grail/common/core/utils/QiNiuUpload.java @@ -33,6 +33,17 @@ public class QiNiuUpload { return b; } + public String bigFile(MultipartFile file){ + + String originalFilename = file.getOriginalFilename(); + + String key = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 15); + + String s = QiNiuUtil.bigFile(originalFilename, key); + + return s; + } + diff --git a/src/main/java/com/grail/common/core/utils/QiNiuUtil.java b/src/main/java/com/grail/common/core/utils/QiNiuUtil.java index 581cb95..c83a3f3 100644 --- a/src/main/java/com/grail/common/core/utils/QiNiuUtil.java +++ b/src/main/java/com/grail/common/core/utils/QiNiuUtil.java @@ -8,8 +8,10 @@ import com.grail.common.core.utils.file.MimeTypeUtils; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; +import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; +import com.qiniu.storage.persistent.FileRecorder; import com.qiniu.util.Auth; import com.qiniu.util.UrlSafeBase64; import com.grail.common.core.config.QiNiuConfig; @@ -25,6 +27,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.nio.file.Paths; /** * 七牛上传下载工具类 @@ -32,6 +35,44 @@ import java.net.URLEncoder; **/ @Slf4j public class QiNiuUtil { + + + + public static String bigFile(String localFilePath,String key){ + Configuration cfg = new Configuration(Region.region0()); + Auth auth = Auth.create(QiNiuConfig.getInstance().getAccessKey(), QiNiuConfig.getInstance().getSecretKey()); + String upToken = auth.uploadToken(QiNiuConfig.getInstance().getBucket()); + String localTempDir = Paths.get(System.getenv("java.io.tmpdir"), QiNiuConfig.getInstance().getBucket()).toString(); + try { + //设置断点续传文件进度保存目录 + FileRecorder fileRecorder = new FileRecorder(localTempDir); + UploadManager uploadManager = new UploadManager(cfg, fileRecorder); + try { + Response response = uploadManager.put(localFilePath, key, upToken); + //解析上传成功的结果 + DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); + System.out.println(putRet.key); + System.out.println(putRet.hash); + } catch (QiniuException ex) { + ex.printStackTrace(); + if (ex.response != null) { + System.err.println(ex.response); + try { + String body = ex.response.toString(); + System.err.println(body); + return body; + } catch (Exception ignored) { + } + } + } + } catch (IOException ex) { + ex.printStackTrace(); + } + return null; + } + + + /** * 上传本地文件 * @param localFilePath 本地文件完整路径