|
@@ -27,9 +27,11 @@ import com.stuuudy.commons.util.CompressImage;
|
|
|
import com.stuuudy.commons.util.MD5.Md5Util;
|
|
|
import com.stuuudy.commons.util.exception.CommonsException;
|
|
|
import com.stuuudy.commons.util.exception.EnumErrorException;
|
|
|
-import com.tzld.piaoquan.api.config.AliOssConfig;
|
|
|
import com.tzld.piaoquan.api.common.enums.EnumUploadFileType;
|
|
|
+import com.tzld.piaoquan.api.config.AliOssConfig;
|
|
|
+import com.tzld.piaoquan.api.model.vo.contentplatform.SignatureVO;
|
|
|
import com.tzld.piaoquan.growth.common.utils.DateUtils;
|
|
|
+import com.tzld.piaoquan.growth.common.utils.RandomUtil;
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
@@ -513,6 +515,7 @@ public class AliOssFileTool extends AliOssConfig {
|
|
|
}
|
|
|
return "";
|
|
|
}
|
|
|
+
|
|
|
/**
|
|
|
* (重命名文件,实现是先拷贝文件,再删掉旧的文件)<BR>
|
|
|
* 方法名:renameFile<BR>
|
|
@@ -737,48 +740,45 @@ public class AliOssFileTool extends AliOssConfig {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static Map<String, String> getUploadPolicy(String fileName, Integer fileType, String bucketName)
|
|
|
- throws Exception {
|
|
|
-
|
|
|
+ public static SignatureVO getUploadPolicy(Integer fileType) throws Exception {
|
|
|
+ // 后台随机生成唯一文件名
|
|
|
+ String env = PropertiesUtils.getProjectEnv();
|
|
|
+ if (StringUtils.isEmpty(env)) {
|
|
|
+ env = "qa";
|
|
|
+ }
|
|
|
+ String fileName = RandomUtil.generate18String();
|
|
|
+ String contentType = "";
|
|
|
if (EnumUploadFileType.VIDEO.getIntType().equals(fileType)) {
|
|
|
- fileName = "/video/" + fileName;
|
|
|
+ fileName = "/video/" + env + "/" + DateUtils.dateToStringyyyyMMdd(new Date()) + "/" + fileName;
|
|
|
} else if (EnumUploadFileType.VOICE.getIntType().equals(fileType)) {
|
|
|
- fileName = "/voice/" + fileName;
|
|
|
- } else if (EnumUploadFileType.FILE.getIntType().equals(fileType)) {
|
|
|
- fileName = "/file/" + fileName;
|
|
|
+ fileName = "/voice/" + env + "/" + DateUtils.dateToStringyyyyMMdd(new Date()) + "/" + fileName;
|
|
|
} else {
|
|
|
- fileName = "/pic/" + fileName;
|
|
|
+ fileName = "/pic/" + env + "/" + DateUtils.dateToStringyyyyMMdd(new Date()) + "/" + fileName;
|
|
|
}
|
|
|
- // String host = "http://" + bucket + "." + AliOssConfig.getOssEndPoint();
|
|
|
-
|
|
|
long expireTime = 60 * 60 * 4;
|
|
|
long expireEndTime = System.currentTimeMillis() + expireTime * 1000;
|
|
|
Date expiration = new Date(expireEndTime);
|
|
|
PolicyConditions policyConds = new PolicyConditions();
|
|
|
- policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 5261334938L);
|
|
|
-
|
|
|
- policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY,
|
|
|
+ //4.95G 上限是5个G
|
|
|
+ policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 5261334938l);
|
|
|
+ policyConds.addConditionItem(MatchMode.Exact, PolicyConditions.COND_KEY,
|
|
|
AliOssConfig.getProjectName() + fileName);
|
|
|
+ if (!StringUtils.isEmpty(contentType)) {
|
|
|
+ policyConds.addConditionItem(PolicyConditions.COND_CONTENT_TYPE, contentType);
|
|
|
+ }
|
|
|
+
|
|
|
String postPolicy = AliOssConfig.getOssClient().generatePostPolicy(expiration, policyConds);
|
|
|
byte[] binaryData = postPolicy.getBytes("utf-8");
|
|
|
String encodedPolicy = BinaryUtil.toBase64String(binaryData);
|
|
|
String postSignature = AliOssConfig.getOssClient().calculatePostSignature(postPolicy);
|
|
|
- Map<String, String> respMap = new LinkedHashMap<String, String>();
|
|
|
- respMap.put("accessId", AliOssConfig.getAccessKeyId());
|
|
|
- respMap.put("policy", encodedPolicy);
|
|
|
- respMap.put("signature", postSignature);
|
|
|
- respMap.put("fileName", AliOssConfig.getProjectName() + fileName);
|
|
|
-
|
|
|
- if ("clipres".equals(bucketName)) {
|
|
|
- respMap.put("host", PropertiesUtils.getValue("oss.clipres.upload.domain"));
|
|
|
- } else {
|
|
|
- respMap.put("host", AliOssConfig.getLvvideoDomain());
|
|
|
- }
|
|
|
-
|
|
|
- // respMap.put("host", "https://oss.zuluki.com");
|
|
|
- // respMap.put("callback", getCallBackStr(signUploadParams));
|
|
|
- respMap.put("expire", String.valueOf(expireEndTime / 1000));
|
|
|
- return respMap;
|
|
|
+ SignatureVO signatureVO = new SignatureVO();
|
|
|
+ signatureVO.setAccessId(AliOssConfig.getAccessKeyId());
|
|
|
+ signatureVO.setPolicy(encodedPolicy);
|
|
|
+ signatureVO.setSignature(postSignature);
|
|
|
+ signatureVO.setFileName(AliOssConfig.getProjectName() + fileName);
|
|
|
+ signatureVO.setHost(AliOssConfig.getUploadDomain());
|
|
|
+ signatureVO.setExpire(String.valueOf(expireEndTime / 1000));
|
|
|
+ return signatureVO;
|
|
|
}
|
|
|
|
|
|
public static String getSignaturedUrl(String fileName, Boolean isPrivate) {
|