欢迎使用法大大开发者工具套件(SDK),DSS Java SDK 是法大大 DSS API接口文档的配套工具。
SDK已上传至中央仓库(支持JDK8、JDK11),直接通过Maven依赖添加 DSS Java SDK:
<dependency>
<groupId>io.gitee.fadada-cloud</groupId>
<artifactId>dss-java-sdk</artifactId>
<!-- JDK8:1.2.2-8,JDK11:1.2.2-11(当发布新版本时使用最新版本号) -->
<version>1.2.2-11</version>
</dependency>
Maven中央仓库地址:https://central.sonatype.com/artifact/io.gitee.fadada-cloud/dss-java-sdk
直接引入Jar(上传到本地私有仓库),下载发行版(选择最新版下载): https://gitee.com/fadada-cloud/dss-java-sdk/releases
JAVA JDK 支持版本: JDK 11、JDK 8
注意:法大大DSS系统需要已安装并激活启动。(有疑问可联系法大大项目对接人)
引入sdk 所依赖的jar包,提供的方法调用DSS API服务。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
<version>2.0.17</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>1.80</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.12.1</version>
</dependency>
系统参数配置说明
# DSS API部署在本地服务器地址
serverUrl=https://www.xxx.com
# DSS本地服务应用ID(DSS控制台系统 > 集成中心 > 系统集成 > 应用)
appId=765764
# DSS本地服务应用密钥
appSecret=lqdnQUZw3u5rQCLznHz7fEvuzdjhs8Es
# 签名算法类型:HMAC-SHA256、SM3
signType=HMAC-SHA256
# http配置(HttpConfig参数配置说明)
httpConfig=
# DSS本地服务应用加密类型(需要DSS控制台系统 > 集成中心 > 系统集成 > 应用 > 开启加解密)
encryptType=
# DSS平台方加密公钥(DSS接口文档)
dssPublicKey=
# 应用方解密私钥(公私钥对)
privateKey=
HttpConfig参数配置说明
# 网络请求超时时间,默认15秒
connectTimeout=15000
# 网络请求读取超时时间,默认30秒
readTimeout=30000
# 每路由(域名)最大的连接数
defaultMaxPerRoute=
# socket最大的连接数
defaultSocketMaxTotal=
# http是否打开代理,默认false
proxyFlag=
# http代理地址
proxyHost=
# http代理端口号
proxyPort=
# 忽略SSL检查,默认true
ignoreSSLCheck=
# 忽略HOST检查,默认true
ignoreHostCheck=
# 是否启用响应GZIP压缩,默认false
useGzipEncoding=
# 重试最大次数,默认0
maxRetries=
# 是否打印日志,默认false
logFlag=
import com.dss.sdk.api.factory.DssApiSdkFactory;
import com.dss.sdk.api.req.FileDownloadRequest;
import com.dss.sdk.api.req.FileGetFileInfoRequest;
import com.dss.sdk.api.req.FileUploadRequest;
import com.dss.sdk.api.resp.FileGetFileInfoResponse;
import com.dss.sdk.enums.MimeTypeEnum;
import com.dss.sdk.exception.ApiException;
import com.dss.sdk.file.FileItem;
import com.dss.sdk.response.DssEntityResponse;
import com.dss.sdk.response.DssResponse;
import com.dss.sdk.utils.json.GsonUtil;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author Fadada
*/
public class DssApiClentDemo {
private static final String host = "https://xxx.fadada.com";
private static final String appId = "765764";
private static final String appSecret = "lqdnQUZw3u5rQCLznHz7fEvuzdjhs8Es";
private static final String filePath = "C:\\temp\\d.pdf";
public static void main(String[] args) throws Exception {
//初始化
DssApiSdkFactory.init(host, appId, appSecret);
//上传文件
uploadFile();
//查询
getFileResult();
//下载文件
downFile();
}
public static void uploadFile() throws ApiException {
FileUploadRequest request = new FileUploadRequest();
request.setFileName("d.pdf");
request.setFile(new FileItem(filePath));
//发起请求
DssResponse<FileGetFileInfoResponse> response = DssApiSdkFactory.fileTransferClient.filePreUpload(request);
System.out.println(GsonUtil.toJsonStr(response));
}
public static void getFileResult() throws ApiException {
FileGetFileInfoRequest request = new FileGetFileInfoRequest();
request.setFileId("466298555308347392_cpdf");
//发起请求
DssResponse<FileGetFileInfoResponse> response = DssApiSdkFactory.fileTransferClient.getFileInfo(request);
System.out.println(GsonUtil.toJsonStr(response));
}
public static void downFile() throws ApiException, IOException {
FileDownloadRequest request = new FileDownloadRequest();
request.setFileId("466298555308347392_cpdf");
//发起请求
DssResponse<DssEntityResponse> response = DssApiSdkFactory.fileTransferClient.downloadStream(request);
if (response.isSuccess()) {
MimeTypeEnum type = MimeTypeEnum.getByContentType(response.getData().getContentType());
switch (type) {
case PDF:
File file = new File(System.getProperty("java.io.tmpdir") + File.separator + "test.pdf");
if (file.exists()) {
file.delete();
} else {
file.createNewFile();
}
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file))) {
bos.write(response.getData().getContent());
bos.flush();
System.out.println(file.getPath());
}
break;
}
}
}
}
应用加解密初始化客户端
// AES
DssApiSdkFactory.init(host, appId, appSecret, rsaEncryptType, rsaDssPublicKey, rsaPrivateKey);
// SM4
DssApiSdkFactory.init(host, appId, appSecret, smEncryptType, smDssPublicKey, smPrivateKey);
手动初始化客户端
DssApiSdkFactory.init(host, appId, appSecret);
FileUploadRequest request = new FileUploadRequest();
request.setFileName("d.pdf");
request.setFile(new FileItem(filePath));
//发起请求
DssResponse<FileGetFileInfoResponse> response = DssApiSdkFactory.fileTransferClient.filePreUpload(request);
更多示例详见demo代码(https://gitee.com/fadada-cloud/dss-java-sdk/blob/master/src/main/java/com/dss/demo/DssApiClentDemo.java)
当SDK版本不匹配DSS系统版本时(API接口SDK不满足),可通过扩展实现自定义的请求接口、请求参数、响应结果解析等。
1、自定义接口请求Request,继承BaseDssRequest。
public class GetAccountRequest extends BaseDssRequest {
/** 用户在当前系统的唯一标识 */
@ValidField(required = true)
private String accountId;
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
}
2、自定义接口响应Response。
public class GetAccountResponse {
private List<AccountInfo> data;
public List<AccountInfo> getData() {
return data;
}
public void setData(List<AccountInfo> data) {
this.data = data;
}
}
3、自定义接口响应Data
public class AccountInfo {
/**
* 用户在当前系统的唯一标识
*/
private String accountId;
public String getAccountId() {
return accountId;
}
public void setAccountId(String accountId) {
this.accountId = accountId;
}
}
4、自定义请求Client
public class GetAccountClient {
private static final Logger log = LoggerFactory.getLogger(GetAccountClient.class);
public DssClientService clientService;
public GetAccountClient(DssClientService clientService) {
this.clientService = clientService;
}
public DssResponse<GetAccountResponse> getAccount(GetAccountRequest request) throws ApiException {
return clientService.execute(request, "/api/get/account", GetAccountResponse.class);
}
}
5、自定义接口请求
// 创建业务Client
DssClientService service = new DssClientService(host, appId, appSecret);
GetAccountClient dssClient = new GetAccountClient(service);
// 请求参数
GetAccountRequest request = new GetAccountRequest();
request.setAccountId("418018522430435328");
// 接口响应
DssResponse<GetAccountResponse> response = dssClient.getAccount(request);
if(response.isSuccess()){
// 响应Data
List<AccountInfo> data = response.getData();
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。