Jelajahi Sumber

image upload to oss set content type

ehlxr 1 tahun lalu
induk
melakukan
f600e80820

+ 11 - 3
etl-core/src/main/java/com/tzld/crawler/etl/service/impl/EtlServiceImpl.java

@@ -387,7 +387,7 @@ public class EtlServiceImpl implements EtlService {
 
         // 视频封面下载、上传 OSS
         String coverPath = urlDownload(data.getCoverUrl(), "longvideo/crawler_local/image", title, data.getOutVideoId(), platform);
-        file2oss(downloadPath + File.separator + coverPath, coverPath, platform, strategy);
+        file2oss(downloadPath + File.separator + coverPath, coverPath, platform, strategy, "image/jpg");
         data.setCoverOssPath(coverPath);
         tempFilePath = downloadPath + File.separator + coverPath;
 
@@ -448,14 +448,18 @@ public class EtlServiceImpl implements EtlService {
         return relFileDir + File.separator + fileName;
     }
 
-    private void file2oss(String localFile, String ossBucketKey, String crawler, String mode) {
+    private void file2oss(String localFile, String ossBucketKey, String crawler, String mode, String contentType) {
         // 文件上传 OSS
         slsService.log("message", "开始上传视频... ", "crawler", crawler, "mode", mode);
         log.info("begin upload {} to oss key {}", localFile, ossBucketKey);
 
         retrySupplier(() -> {
             try {
-                aliyunOssManager.putObject(ossBucket, ossBucketKey, Files.newInputStream(Paths.get(localFile)));
+                if (!Strings.isNullOrEmpty(contentType)) {
+                    aliyunOssManager.putObject(ossBucket, ossBucketKey, Files.newInputStream(Paths.get(localFile)), contentType);
+                } else {
+                    aliyunOssManager.putObject(ossBucket, ossBucketKey, Files.newInputStream(Paths.get(localFile)));
+                }
                 return false;
             } catch (IOException e) {
                 throw new RuntimeException(e);
@@ -463,6 +467,10 @@ public class EtlServiceImpl implements EtlService {
         }, "2oss", String.format("upload file [%s] to oss [%s]", localFile, ossBucketKey));
     }
 
+    private void file2oss(String localFile, String ossBucketKey, String crawler, String mode) {
+        file2oss(localFile, ossBucketKey, crawler, mode, null);
+    }
+
     private void retrySupplier(BooleanSupplier supplier, String type, String errorMsg) {
         retryFunc(c -> supplier.getAsBoolean(), null, type, errorMsg);
     }

+ 1 - 0
pom.xml

@@ -135,6 +135,7 @@
         <dependency>
             <groupId>com.tzld.commons</groupId>
             <artifactId>aliyun-oss-spring-boot-starter</artifactId>
+            <version>2.0.4</version>
         </dependency>
 
         <dependency>