diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/SaaSAPIFileUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/SaaSAPIFileUtils.java index 5ea9410..fa6389b 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/SaaSAPIFileUtils.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/file/SaaSAPIFileUtils.java @@ -1,5 +1,6 @@ package com.ruoyi.common.utils.file; +import cn.hutool.json.JSONObject; import com.ruoyi.common.config.EsignDemoConfig; import com.ruoyi.common.constant.EsignHeaderConstant; import com.ruoyi.common.core.domain.entity.EsignHttpResponse; @@ -16,8 +17,6 @@ public class SaaSAPIFileUtils { private static String eSignAppSecret=EsignDemoConfig.EsignAppSecret; /** * 获取文件上传地址 - * - * @return */ public static EsignHttpResponse getUploadUrl(String filePath) throws EsignDemoException { //自定义的文件封装类,传入文件地址可以获取文件的名称大小,文件流等数据 @@ -38,6 +37,47 @@ public class SaaSAPIFileUtils { //发起接口请求 return EsignHttpHelper.doCommHttp(eSignHost, apiaddr, requestType, jsonParm, header, true); } + /** + * 上传文件流 + */ + public static EsignHttpResponse uploadFile(String uploadUrl,String filePath) throws EsignDemoException { + //根据文件地址获取文件contentMd5 + EsignFileBean esignFileBean = new EsignFileBean(filePath); + //请求方法 + EsignRequestType requestType= EsignRequestType.PUT; + return EsignHttpHelper.doUploadHttp(uploadUrl,requestType,esignFileBean.getFileBytes(),esignFileBean.getFileContentMD5(), EsignHeaderConstant.CONTENTTYPE_STREAM.VALUE(),true); + } + /** + * 获取文件上传状态 + */ + public static EsignHttpResponse getFileStatus(String fileId) throws EsignDemoException { + String apiaddr="/v3/files/"+fileId; + //请求参数body体,json格式。get或者delete请求时jsonString传空json:"{}"或者null + String jsonParm=null; + //请求方法 + EsignRequestType requestType= EsignRequestType.GET; + //生成签名鉴权方式的的header + Map header = EsignHttpHelper.signAndBuildSignAndJsonHeader(eSignAppId,eSignAppSecret,jsonParm,requestType.name(),apiaddr,true); + //发起接口请求 + return EsignHttpHelper.doCommHttp(eSignHost, apiaddr,requestType , jsonParm, header,true); + } + +/* public static void main(String[] args) throws EsignDemoException { + String filePath = "D:\\home\\ruoyi\\uploadPath\\upload\\2023\\10\\07\\6babb8e261454fffbacf6d9fd1589b9b.docx"; + EsignHttpResponse uploadUrl = getUploadUrl(filePath); + String body = uploadUrl.getBody(); + JSONObject jsonObject = new JSONObject(body); + JSONObject dataObj = jsonObject.getJSONObject("data"); + String fileUploadUrl = dataObj.get("fileUploadUrl").toString(); + System.out.println("这是fileUploadUrl:"+fileUploadUrl); + String fileId = dataObj.get("fileId").toString(); + System.out.println("这是fileId:"+fileId); + EsignHttpResponse esignHttpResponse = uploadFile(fileUploadUrl, filePath); + System.out.println("这是上传文件流的结果:"+esignHttpResponse.getBody()); + EsignHttpResponse fileStatus = getFileStatus(fileId); + System.out.println("这是获取文件上传状态的结果:"+fileStatus.getBody()); + getFileStatus("95d0c307d91e4985bdb8874f6f84daa5"); + }*/ }