package com.doumee.core.jiandaoyun.api.jdy; import com.doumee.core.jiandaoyun.model.file.UploadTokenParam; import com.doumee.core.jiandaoyun.model.http.ApiClient; import com.doumee.core.jiandaoyun.model.http.HttpRequestParam; import org.apache.commons.lang3.StringUtils; import java.io.File; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.doumee.core.jiandaoyun.constants.HttpConstant.FORM_BASE_PATH; /** * 文件相关接口 */ public class FileApiClient extends ApiClient { private static final String DEFAULT_VERSION = "v5"; private static final List VALID_VERSION_LIST = Collections.singletonList("v5"); public FileApiClient(String apiKey, String host) { super(apiKey, host); this.setDefaultVersion(DEFAULT_VERSION); this.setValidVersionList(VALID_VERSION_LIST); } @Override public String generatePath(String version, String path) { return super.getValidVersion(version) + FORM_BASE_PATH + path; } /** * 获取文件上传凭证和上传地址接口 * * @param uploadTokenParam - 文件对应的信息 * @return token和url信息 */ public Map uploadToken(UploadTokenParam uploadTokenParam, String version) throws Exception { if (uploadTokenParam == null || !uploadTokenParam.isValid()) { throw new RuntimeException("param lack!"); } String path = this.generatePath(version, "file/get_upload_token"); // 请求参数 Map data = new HashMap<>(); data.put("transaction_id", uploadTokenParam.getTransactionId()); data.put("app_id", uploadTokenParam.getAppId()); data.put("entry_id", uploadTokenParam.getEntryId()); HttpRequestParam param = new HttpRequestParam(path, data); return this.sendPostRequest(param); } public Map uploadFile(String url, String token, File file) throws Exception { if (StringUtils.isBlank(url) || StringUtils.isBlank(token) || file == null) { throw new RuntimeException("param lack!"); } return this.httpPostFile(url, token, file); } }