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" 
});

results matching ""

    No results matching ""