Commit 474f7328 by songxiang

fix bug 内部上传图片webp处理

parent b711008d
...@@ -384,6 +384,12 @@ ...@@ -384,6 +384,12 @@
<version>2.0</version> <version>2.0</version>
</dependency> </dependency>
<!-- util sdk -->
<dependency>
<groupId>com.dcg.sdk</groupId>
<artifactId>util-sdk</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
...@@ -14,9 +14,12 @@ import javax.imageio.ImageIO; ...@@ -14,9 +14,12 @@ import javax.imageio.ImageIO;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.dcg.util.StringUtils;
import com.itextpdf.text.Image; import com.itextpdf.text.Image;
import com.pcloud.common.constant.AliyunConstant; import com.pcloud.common.constant.AliyunConstant;
import com.pcloud.common.constant.FilePathConst;
import com.pcloud.common.constant.ImageConstant; import com.pcloud.common.constant.ImageConstant;
import com.pcloud.common.entity.UploadResultInfo;
import com.pcloud.common.enums.ImageEnum; import com.pcloud.common.enums.ImageEnum;
import com.pcloud.common.exceptions.BizException; import com.pcloud.common.exceptions.BizException;
import com.pcloud.common.exceptions.FileException; import com.pcloud.common.exceptions.FileException;
...@@ -688,4 +691,37 @@ public class ImageUtils { ...@@ -688,4 +691,37 @@ public class ImageUtils {
return size; return size;
} }
/**
* 上传的图片转换成webpO
*
* @param localFilePath
* 源文件的本地路径
* @param httpUrl
* 源文件上传后的路径,主要用于子文件上传时对应http文件路径
*/
public static UploadResultInfo toWebp(String fileUrl) {
String fileNameAll = FileUtils.getFileNameAll(fileUrl);
String localFilePath = FilePathConst.DOWNLOAD_PATH + fileNameAll;
FileUtils.downloadFileFromUrl(fileUrl, localFilePath);
String tragetPath = null;
try {
tragetPath = com.dcg.util.ImageUtils.transcodeToWebp(localFilePath, 80);
} catch (Exception e) {
LOGGER.error("【IMAGE】图片转换成webp失败:" + e.getMessage(), e);
return null;
}
if (StringUtils.isEmpty(tragetPath)) {
return null;
}
try {
return OssUtils.uploadLocalFile4Child(tragetPath, fileUrl);
} catch (Exception e) {
LOGGER.error("【IMAGE】图片转换成webp,上传失败:" + e.getMessage(), e);
} finally {
FileUtils.deleteFile(localFilePath);
FileUtils.deleteFile(tragetPath);
}
return null;
}
} }
...@@ -35,6 +35,7 @@ import com.aliyuncs.mts.model.v20140618.SubmitMediaInfoJobResponse.MediaInfoJob. ...@@ -35,6 +35,7 @@ import com.aliyuncs.mts.model.v20140618.SubmitMediaInfoJobResponse.MediaInfoJob.
import com.aliyuncs.mts.model.v20140618.SubmitSnapshotJobRequest; import com.aliyuncs.mts.model.v20140618.SubmitSnapshotJobRequest;
import com.aliyuncs.mts.model.v20140618.SubmitSnapshotJobResponse.SnapshotJob; import com.aliyuncs.mts.model.v20140618.SubmitSnapshotJobResponse.SnapshotJob;
import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.DefaultProfile;
import com.dcg.util.FileTypeUtils;
import com.pcloud.common.constant.AliyunConstant; import com.pcloud.common.constant.AliyunConstant;
import com.pcloud.common.constant.FilePathConst; import com.pcloud.common.constant.FilePathConst;
import com.pcloud.common.constant.UrlConstant; import com.pcloud.common.constant.UrlConstant;
...@@ -147,7 +148,13 @@ public class OssUtils { ...@@ -147,7 +148,13 @@ public class OssUtils {
String fileType = FileUtils.getFileType(filePath); String fileType = FileUtils.getFileType(filePath);
String outObjectKey = getOutObjectKey(AliyunEnum.UPLOAD.value, fileName, fileType); String outObjectKey = getOutObjectKey(AliyunEnum.UPLOAD.value, fileName, fileType);
uploadPointFile2OSS(filePath, AliyunConstant.FILE_BUCKET, outObjectKey); uploadPointFile2OSS(filePath, AliyunConstant.FILE_BUCKET, outObjectKey);
return getResultInfo(outObjectKey, new File(filePath).length(), null, AliyunConstant.FILE_BUCKET); UploadResultInfo uploadResultInfo = getResultInfo(outObjectKey, new File(filePath).length(), null,
AliyunConstant.FILE_BUCKET);
// 如果上传的是图片转换成webp
if (uploadResultInfo != null && FileTypeUtils.equalsGatherName(fileType, FileTypeUtils.IMAGE)) {
ImageUtils.toWebp(uploadResultInfo.getUrl());
}
return uploadResultInfo;
} }
/** /**
...@@ -200,7 +207,12 @@ public class OssUtils { ...@@ -200,7 +207,12 @@ public class OssUtils {
throws FileException { throws FileException {
String outObjectKey = getOutObjectKey(AliyunEnum.UPLOAD.value, null, fileType); String outObjectKey = getOutObjectKey(AliyunEnum.UPLOAD.value, null, fileType);
uploadFileStream2OSS(is, AliyunConstant.FILE_BUCKET, outObjectKey); uploadFileStream2OSS(is, AliyunConstant.FILE_BUCKET, outObjectKey);
return getResultInfo(outObjectKey, null, null, AliyunConstant.FILE_BUCKET); UploadResultInfo uploadResultInfo = getResultInfo(outObjectKey, null, null, AliyunConstant.FILE_BUCKET);
// 如果上传的是图片转换成webp
if (uploadResultInfo != null && FileTypeUtils.equalsGatherName(fileType, FileTypeUtils.IMAGE)) {
ImageUtils.toWebp(uploadResultInfo.getUrl());
}
return uploadResultInfo;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment