oss相关代码改写
This commit is contained in:
parent
ba80139fcd
commit
2a520725de
@ -1,11 +1,17 @@
|
|||||||
package com.macro.mall.dto;
|
package com.macro.mall.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* oss上传成功后的回调参数
|
||||||
* Created by macro on 2018/5/17.
|
* Created by macro on 2018/5/17.
|
||||||
*/
|
*/
|
||||||
public class OssCallbackParam {
|
public class OssCallbackParam {
|
||||||
|
@ApiModelProperty("请求的回调地址")
|
||||||
private String callbackUrl;
|
private String callbackUrl;
|
||||||
|
@ApiModelProperty("回调是传入request中的参数")
|
||||||
private String callbackBody;
|
private String callbackBody;
|
||||||
|
@ApiModelProperty("回调时传入参数的格式,比如表单提交形式")
|
||||||
private String callbackBodyType;
|
private String callbackBodyType;
|
||||||
|
|
||||||
public String getCallbackUrl() {
|
public String getCallbackUrl() {
|
||||||
|
@ -1,13 +1,21 @@
|
|||||||
package com.macro.mall.dto;
|
package com.macro.mall.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* oss上传文件的回调结果
|
||||||
* Created by macro on 2018/5/17.
|
* Created by macro on 2018/5/17.
|
||||||
*/
|
*/
|
||||||
public class OssCallbackResult {
|
public class OssCallbackResult {
|
||||||
|
@ApiModelProperty("文件名称")
|
||||||
private String filename;
|
private String filename;
|
||||||
|
@ApiModelProperty("文件大小")
|
||||||
private String size;
|
private String size;
|
||||||
|
@ApiModelProperty("文件的mimeType")
|
||||||
private String mimeType;
|
private String mimeType;
|
||||||
|
@ApiModelProperty("图片文件的宽")
|
||||||
private String width;
|
private String width;
|
||||||
|
@ApiModelProperty("图片文件的高")
|
||||||
private String height;
|
private String height;
|
||||||
|
|
||||||
public String getFilename() {
|
public String getFilename() {
|
||||||
|
@ -1,15 +1,24 @@
|
|||||||
package com.macro.mall.dto;
|
package com.macro.mall.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取OSS上传授权返回结果
|
* 获取OSS上传文件授权返回结果
|
||||||
* Created by macro on 2018/5/17.
|
* Created by macro on 2018/5/17.
|
||||||
*/
|
*/
|
||||||
public class OssPolicyResult {
|
public class OssPolicyResult {
|
||||||
|
@ApiModelProperty("访问身份验证中用到用户标识")
|
||||||
private String accessKeyId;
|
private String accessKeyId;
|
||||||
|
@ApiModelProperty("用户表单上传的策略,经过base64编码过的字符串")
|
||||||
private String policy;
|
private String policy;
|
||||||
|
@ApiModelProperty("对policy签名后的字符串")
|
||||||
private String signature;
|
private String signature;
|
||||||
|
@ApiModelProperty("上传文件夹路径前缀")
|
||||||
private String dir;
|
private String dir;
|
||||||
|
@ApiModelProperty("oss对外服务的访问域名")
|
||||||
private String host;
|
private String host;
|
||||||
|
@ApiModelProperty("上传成功后的回调设置")
|
||||||
|
private String callback;
|
||||||
|
|
||||||
public String getAccessKeyId() {
|
public String getAccessKeyId() {
|
||||||
return accessKeyId;
|
return accessKeyId;
|
||||||
@ -50,4 +59,12 @@ public class OssPolicyResult {
|
|||||||
public void setHost(String host) {
|
public void setHost(String host) {
|
||||||
this.host = host;
|
this.host = host;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getCallback() {
|
||||||
|
return callback;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCallback(String callback) {
|
||||||
|
this.callback = callback;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,12 @@ import javax.servlet.http.HttpServletRequest;
|
|||||||
* Created by macro on 2018/5/17.
|
* Created by macro on 2018/5/17.
|
||||||
*/
|
*/
|
||||||
public interface OssService {
|
public interface OssService {
|
||||||
|
/**
|
||||||
|
* oss上传策略生成
|
||||||
|
*/
|
||||||
OssPolicyResult policy();
|
OssPolicyResult policy();
|
||||||
|
/**
|
||||||
|
* oss上传成功回调
|
||||||
|
*/
|
||||||
OssCallbackResult callback(HttpServletRequest request);
|
OssCallbackResult callback(HttpServletRequest request);
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import java.text.SimpleDateFormat;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* oss上传管理Service实现类
|
||||||
* Created by macro on 2018/5/17.
|
* Created by macro on 2018/5/17.
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
@ -57,10 +58,10 @@ public class OssServiceImpl implements OssService {
|
|||||||
// 文件大小
|
// 文件大小
|
||||||
long maxSize = ALIYUN_OSS_MAX_SIZE * 1024 * 1024;
|
long maxSize = ALIYUN_OSS_MAX_SIZE * 1024 * 1024;
|
||||||
// 回调
|
// 回调
|
||||||
// OssCallbackParam callback = new OssCallbackParam();
|
OssCallbackParam callback = new OssCallbackParam();
|
||||||
// callback.setCallbackUrl(ALIYUN_OSS_CALLBACK);
|
callback.setCallbackUrl(ALIYUN_OSS_CALLBACK);
|
||||||
// callback.setCallbackBody("filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");
|
callback.setCallbackBody("filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");
|
||||||
// callback.setCallbackBodyType("application/x-www-form-urlencoded");
|
callback.setCallbackBodyType("application/x-www-form-urlencoded");
|
||||||
// 提交节点
|
// 提交节点
|
||||||
String action = "http://" + ALIYUN_OSS_BUCKET_NAME + "." + ALIYUN_OSS_ENDPOINT;
|
String action = "http://" + ALIYUN_OSS_BUCKET_NAME + "." + ALIYUN_OSS_ENDPOINT;
|
||||||
try {
|
try {
|
||||||
@ -71,13 +72,13 @@ public class OssServiceImpl implements OssService {
|
|||||||
byte[] binaryData = postPolicy.getBytes("utf-8");
|
byte[] binaryData = postPolicy.getBytes("utf-8");
|
||||||
String policy = BinaryUtil.toBase64String(binaryData);
|
String policy = BinaryUtil.toBase64String(binaryData);
|
||||||
String signature = ossClient.calculatePostSignature(postPolicy);
|
String signature = ossClient.calculatePostSignature(postPolicy);
|
||||||
// String callbackData = BinaryUtil.toBase64String(JSONUtil.parse(callback).toString().getBytes("utf-8"));
|
String callbackData = BinaryUtil.toBase64String(JSONUtil.parse(callback).toString().getBytes("utf-8"));
|
||||||
// 返回结果
|
// 返回结果
|
||||||
result.setAccessKeyId(ossClient.getCredentialsProvider().getCredentials().getAccessKeyId());
|
result.setAccessKeyId(ossClient.getCredentialsProvider().getCredentials().getAccessKeyId());
|
||||||
result.setPolicy(policy);
|
result.setPolicy(policy);
|
||||||
result.setSignature(signature);
|
result.setSignature(signature);
|
||||||
result.setDir(dir);
|
result.setDir(dir);
|
||||||
// result.setCallback(callbackData);
|
result.setCallback(callbackData);
|
||||||
result.setHost(action);
|
result.setHost(action);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOGGER.error("签名生成失败", e);
|
LOGGER.error("签名生成失败", e);
|
||||||
|
@ -15,16 +15,16 @@ jwt:
|
|||||||
|
|
||||||
aliyun:
|
aliyun:
|
||||||
oss:
|
oss:
|
||||||
endpoint: oss-cn-shenzhen.aliyuncs.com
|
endpoint: oss-cn-shenzhen.aliyuncs.com # oss对外服务的访问域名
|
||||||
accessKeyId: test
|
accessKeyId: test # 访问身份验证中用到用户标识
|
||||||
accessKeySecret: test
|
accessKeySecret: test # 用户用于加密签名字符串和oss用来验证签名字符串的密钥
|
||||||
bucketName: macro-oss
|
bucketName: macro-oss # oss的存储空间
|
||||||
policy:
|
policy:
|
||||||
expire: 300
|
expire: 300 # 签名有效期(S)
|
||||||
maxSize: 10
|
maxSize: 10 # 上传文件大小(M)
|
||||||
callback: http://localhost:8080/aliyun/oss/callback
|
callback: http://39.98.190.128:8080/aliyun/oss/callback # 文件上传成功后的回调地址
|
||||||
dir:
|
dir:
|
||||||
prefix: mall/images/
|
prefix: mall/images/ # 上传文件夹路径前缀
|
||||||
|
|
||||||
logging:
|
logging:
|
||||||
level:
|
level:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user