Java SDK
获取服务实例
通过 StorageClient 可以获取到 StorageApi 实例
com.justep.clients.StorageClient
com.justep.clients.api.StorageApi
// 获取 api 实例
StorageApi storageApi = StorageClient.getInstance();
StorageApi storageApi = StorageClient.getInstance(RequestType.APPLICTION_JSON);
获取当前应用服务实例
方法:
getInstance()
参数:
无
描述:
获取当前应用文件存储服务实例
返回值:
StorageApi 实例
使用案例
StorageApi storageApi = StorageClient.getInstance();
获取指定应用服务实例
方法:
getInstance(String serverPath)
参数:
serverPath:应用服务路径
描述:
获取指定应用文件存储服务实例
返回值:
StorageApi 实例
使用案例
StorageApi storageApi = StorageClient.getInstance("/other");
获取指定请求类型服务实例
方法:
getInstance(ServiceClient.RequestType requestType)
参数:
requestType:api 调用请求类型
描述:
获取指定请求类型文件存储服务实例,在 StorageApi 中主要应用于打包下载方法
返回值:
StorageApi实例
使用案例
StorageApi storageApi = StorageClient.getInstance(RequestType.APPLICTION_JSON);
其中:
RequestType 主要包含 APPLICTION_JSON 及 NORMAL
获取指定应用及请求类型服务实例
方法:
getInstance(String serverPath,ServiceClient.RequestType requestType)
参数:
requestType:api 调用请求类型
描述:
获取指定应用及请求类型文件存储服务实例,在 StorageApi 中主要应用于打包下载方法
返回值:
StorageApi 实例
使用案例
StorageApi storageApi = StorageClient.getInstance("/other",RequestType.APPLICTION_JSON);
其中:
RequestType 主要包含 APPLICTION_JSON 及 NORMAL
服务方法
详细方法使用请参考《Java 后端实现文件上传、下载、删除及打包下载》
上传文件
方法:
void postObject(@Param("userfile") InputStream var1, @Param"storeFileName"))
参数:
userfile:上传文件流,必填
storeFileName:文件存储文件名,必填,推荐按照格式“/{yyyy}/{MM}/{dd}/anoy_{文件名}”自定义
描述:
后端上传文件
返回值:
无
前端直接调用地址:
headers:{"content-type":multipart/form-data}
POST /storage/postObject
注意:
获取 storageApi 时设置请求类型为 RequestType.NORMAL 或空
前端调用实例:
fetch("http://entrydevguide8-vip6b2092a7.trunk2.xcaas.com:8800/react/storage/postObject", {
"headers": {
"content-type": "multipart/form-data; boundary=----WebKitFormBoundaryXz1DuXEBOOVONIzE"
},
"body": "------WebKitFormBoundaryXz1DuXEBOOVONIzE\r\nContent-Disposition: form-data; name=\"storeFileName\"\r\n\r\n/2024/5/21/anoy_CAC02DF7BA000001914E115E9D0073A0OIP-C (3).jpg\r\n------WebKitFormBoundaryXz1DuXEBOOVONIzE\r\nContent-Disposition: form-data; name=\"userfile\"; filename=\"OIP-C (3).jpg\"\r\nContent-Type: image/jpeg\r\n\r\n\r\n------WebKitFormBoundaryXz1DuXEBOOVONIzE--\r\n",
"method": "POST"
});
获取文件
方法:
Response getFileAsFeignResponse(@Param("storeFileName") String var1,@Param("realFileName") String var3)
参数:
storeFileName:存储文件名,必填
realFileName:文件实际使用名,非必填
描述:
后端获取文件响应信息
返回值:
Response:文件响应信息
前端直接调用地址
GET /storage/getObject
前端调用实例:
fetch("http://entrydevguide8-vip6b2092a7.trunk2.xcaas.com:8800/react/storage/getObject?storeFileName=%2F2024%2F5%2F21%2Fanoy_CAC02DF7BA000001914E115E9D0073A0OIP-C%20(3).jpg&operateType=browse&fullfilename=%2F2024%2F5%2F21%2Fanoy_CAC02DF7BA000001914E115E9D0073A0OIP-C%20(3).jpg", {
"method": "GET"
});
打包下载
方法:
Response getBatchZipStreamAsFeignResponse(JSONArray var1, @Param("zipFileName") String var2)
参数:
JSONArray var1:文件信息,必填
zipFileName:下载文件包名,非必填,默认为“附件{yyyyMMddHHmm}.zip”
描述:
根据传递的文件集合信息进行打包下载
返回值:
Response:文件响应信息
前端直接调用地址
headers:{"content-type":application/json}
POST /storage/batchStream?zipFileName={zipFileName}
注意:
获取 storageApi 时需要设置请求类型为 RequestType.APPLICTION_JSON
前端调用案例:
fetch("/react/storage/batchStream", {
headers:{'Content-Type': 'application/json'},
method: 'POST', // 指定请求方法为 POST
body: JSON.stringify(files), // 将 FormData 对象作为请求体发送
responseType:"blob"
}).then(response => {
return response.blob(); // 将响应转换为 blob 格式
}).then(blob => {
// 创建一个链接元素用于下载
const url = window.URL.createObjectURL(blob);
const a = document.createElement('a');
a.style.display = 'none';
a.href = url;
a.download = '自定义组件多文件打包下载.zip'; // 指定下载文件的名称
document.body.appendChild(a);
a.click(); // 触发下载
window.URL.revokeObjectURL(url); // 释放 URL 对象
document.body.removeChild(a); // 移除链接元素
}).catch(error => {
console.error('There was a problem with the fetch operation:', error);
});
删除文件
方法:
void removeObject(@Param("storeFileName") String var1)
参数:
storeFileName:存储文件名,必填
描述:
根据存储文件名删除文件
返回值:
无
前端直接调用地址:
DELETE /storage/removeObject
前端调用案例:
fetch("http://entrydevguide8-vip6b2092a7.trunk2.xcaas.com:8800/react/storage/removeObject?storeFileName=/2024-05-21/ccd5ef54-14b0-49ce-916f-161148d9a1e9.jpg", {
"method": "DELETE"
});