Commit 4911c4df by 李传峰

Merge branch 'fixbug/webp' into 'master'

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

See merge request rays/pcloud-common-parent!271
parents adf5f217 a5523fc5
...@@ -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