|
|
@@ -1,6 +1,7 @@
|
|
|
package cn.reghao.dfs.store.service;
|
|
|
|
|
|
import cn.reghao.dfs.store.model.dto.UploadedFile;
|
|
|
+import cn.reghao.dfs.store.model.vo.CacheResult;
|
|
|
import cn.reghao.dfs.store.model.vo.UploadFileRet;
|
|
|
import cn.reghao.jutil.jdk.http.util.UrlFormatter;
|
|
|
import cn.reghao.jutil.jdk.http.util.UserAgents;
|
|
|
@@ -32,7 +33,7 @@ public class CacheService {
|
|
|
this.fileTypeService = fileTypeService;
|
|
|
}
|
|
|
|
|
|
- public String cacheImage(String url) {
|
|
|
+ public CacheResult cacheImage(String url) {
|
|
|
HttpRequest.Builder builder = HttpRequest.newBuilder()
|
|
|
.uri(URI.create(url))
|
|
|
.timeout(Duration.ofSeconds(30))
|
|
|
@@ -41,21 +42,21 @@ public class CacheService {
|
|
|
|
|
|
try {
|
|
|
HttpResponse<InputStream> in = client.send(builder.build(), HttpResponse.BodyHandlers.ofInputStream());
|
|
|
- InputStream inputStream = in.body();
|
|
|
- String filename = UrlFormatter.getFilename(url);
|
|
|
- long size = inputStream.available();
|
|
|
- String contentType = fileTypeService.getFileType(filename).getContentType();
|
|
|
- if (contentType.startsWith("application")) {
|
|
|
- return null;
|
|
|
+ int statusCode = in.statusCode();
|
|
|
+ if (statusCode == 200) {
|
|
|
+ InputStream inputStream = in.body();
|
|
|
+ String filename = UrlFormatter.getFilename(url);
|
|
|
+ long size = inputStream.available();
|
|
|
+ String contentType = fileTypeService.getFileType(filename).getContentType();
|
|
|
+ UploadedFile uploadedFile = new UploadedFile(filename, size, contentType, inputStream);
|
|
|
+ UploadFileRet uploadFileRet = fileUploadService.put(uploadedFile);
|
|
|
+ return new CacheResult(uploadFileRet.getUploadId(), uploadFileRet.getUrl());
|
|
|
+ } else if (statusCode == 404) {
|
|
|
+ return new CacheResult(true);
|
|
|
}
|
|
|
-
|
|
|
- UploadedFile uploadedFile = new UploadedFile(filename, size, contentType, inputStream);
|
|
|
- UploadFileRet uploadFileRet = fileUploadService.put(uploadedFile);
|
|
|
- return uploadFileRet.getUrl();
|
|
|
} catch (Exception e) {
|
|
|
log.info("{} 下载失败 -> {}", url, e.getMessage());
|
|
|
}
|
|
|
-
|
|
|
return null;
|
|
|
}
|
|
|
}
|