Commit 01b693ae by 李传峰

Merge branch 'fixbug/webp' into 'release'

bug: [none] 解决华为云webp格式图片浏览器访问默认下载问题

See merge request rays/pcloud-common-parent!270
parents 9abafa40 a5523fc5
...@@ -422,6 +422,12 @@ ...@@ -422,6 +422,12 @@
<artifactId>caffeine</artifactId> <artifactId>caffeine</artifactId>
</dependency> </dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba.cloud/spring-cloud-starter-alibaba-sentinel -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency>
<!-- <dependency>--> <!-- <dependency>-->
<!-- <groupId>io.github.openfeign</groupId>--> <!-- <groupId>io.github.openfeign</groupId>-->
<!-- <artifactId>feign-okhttp</artifactId>--> <!-- <artifactId>feign-okhttp</artifactId>-->
......
...@@ -14,6 +14,7 @@ import com.huawei.mpc.model.transcoding.QueryTranscodingRequest; ...@@ -14,6 +14,7 @@ import com.huawei.mpc.model.transcoding.QueryTranscodingRequest;
import com.huawei.mpc.model.transcoding.QueryTranscodingResponse; import com.huawei.mpc.model.transcoding.QueryTranscodingResponse;
import com.huawei.mpc.model.transcoding.TextWatermark; import com.huawei.mpc.model.transcoding.TextWatermark;
import com.obs.services.ObsClient; import com.obs.services.ObsClient;
import com.obs.services.internal.utils.Mimetypes;
import com.obs.services.internal.utils.ServiceUtils; import com.obs.services.internal.utils.ServiceUtils;
import com.obs.services.model.DownloadFileRequest; import com.obs.services.model.DownloadFileRequest;
import com.obs.services.model.DownloadFileResult; import com.obs.services.model.DownloadFileResult;
...@@ -47,6 +48,7 @@ import com.pcloud.common.utils.rsa.MD5; ...@@ -47,6 +48,7 @@ import com.pcloud.common.utils.rsa.MD5;
import com.pcloud.common.utils.string.StringTools; import com.pcloud.common.utils.string.StringTools;
import com.pcloud.common.utils.string.StringUtil; import com.pcloud.common.utils.string.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -63,10 +65,13 @@ import java.util.ArrayList; ...@@ -63,10 +65,13 @@ import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Optional;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import javax.validation.constraints.NotNull;
/** /**
* @描述: * @描述:
* @作者:zyj * @作者:zyj
...@@ -208,7 +213,8 @@ public class OssUtils { ...@@ -208,7 +213,8 @@ public class OssUtils {
ObsClient client = getOSSClient(bucketName); ObsClient client = getOSSClient(bucketName);
OSSFileDO ossFileDO = null; OSSFileDO ossFileDO = null;
try { try {
client.putObject(bucketName, objectKey, is); // fixbug 华为云 webp 默认打开即下载问题
client.putObject(bucketName, objectKey, is, getObjectMetadata(objectKey));
ossFileDO = new OSSFileDO(AliyunConstant.getOssRegion(bucketName), bucketName, ossFileDO = new OSSFileDO(AliyunConstant.getOssRegion(bucketName), bucketName,
URLEncoder.encode(objectKey, "utf-8")); URLEncoder.encode(objectKey, "utf-8"));
is.close(); is.close();
...@@ -226,6 +232,23 @@ public class OssUtils { ...@@ -226,6 +232,23 @@ public class OssUtils {
} }
/** /**
* 若上传时 Content-Type 是 application/octet-stream 或者 multipart/form-data
* 则文件地址打开默认时下载的 参考{@link Mimetypes#getMimetype(String)}
*/
private static ObjectMetadata getObjectMetadata(@NotNull String objectKey) {
int lastPeriodIndex = objectKey.lastIndexOf(".");
if (lastPeriodIndex > 0 && lastPeriodIndex + 1 < objectKey.length()) {
String ext = objectKey.substring(lastPeriodIndex + 1);
if (StringUtils.equalsIgnoreCase("webp", ext)) {
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("image/webp");
return metadata;
}
}
return null;
}
/**
* 断点续传上传文件到aliOSS * 断点续传上传文件到aliOSS
*/ */
@SneakyThrows @SneakyThrows
......
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