获取文件上传地址

  • 接口:common/files/v2/uploadUrl
  • Method:POST
  • 数据格式:JSON
  • 限流信息:每小时1000次
  • 多语言环境:在接口请求头中添加Key为locale,Value值为语言环境,目前支持的语言有zh_CN(中文)、en_US(英文)、ja_JP(日文)、zh_TW( 繁体),请选取其中一种
  • 接口说明:data中的json数据key为传入的文件名,value为对应的上传地址。具体参见示例。
  • 其他补充信息:本接口为批量接口,接口返回成功不代表全部处理成功。具体参见示例

参数:

请求参数

字段名称 字段类型 字段描述 是否必填 长度限制
data String[] 文件名数组 TRUE 数组长度不超过100

返回参数

字段名称 字段类型 字段描述
resCode Integer 响应状态码(见附录)
resMsg String 返回信息描述
data Array 处理成功的结果数组
data[].fileName String 文件名
data[].fileURL String 文件上传地址,有效期2小时

示例:

请求数据

{
  "data": [
    "45460fcb-7045-48eb-be34-209dfad5f2ca.txt",
    "9b175e6b-6918-4e52-8126-b7eed1483c7d.png"
  ]
}

返回数据

全部处理成功返回

{
  "resCode": 200000,
  "resMsg": "success",
  "data": [
    {
      "fileName": "45460fcb-7045-48eb-be34-209dfad5f2ca.txt",
      "fileURL": "https://xxxx.com.cn/c8493cf0-d099-4c36-9d7d-6b66766b192f.txt?X-Amz-Algorithm=AWSxxxx"
    },
    {
      "fileName": "9b175e6b-6918-4e52-8126-b7eed1483c7d.png",
      "fileURL": "https://xxxx.com.cn/9b175e6b-d099-4c36-9d7d-6b66766b192f.png?X-Amz-Algorithm=AWSxxxx"
    }
  ]
}

部分处理成功返回

{
  "resCode": 200000,
  "resMsg": "success",
  "data": [
    {
      "fileName": "9b175e6b-6918-4e52-8126-b7eed1483c7d.png",
      "fileURL": "https://xxxx.com.cn/9b175e6b-d099-4c36-9d7d-6b66766b192f.png?X-Amz-Algorithm=AWSxxxx"
    }
  ]
}

全部处理失败返回

{
  "resCode": 200000,
  "resMsg": "success",
  "data": []
}

获取 attachment_url

fileURL: https://xxxx.com.cn/xxx/c8493cf0-d099-4c36-9d7d-6b66766b192f.txt?X-Amz-Algorithm=AWSxxxx

对应的attachment_url: xxx/c8493cf0-d099-4c36-9d7d-6b66766b192f.txt

使用文件上传地址上传文件

也可以参考各对象存储的使用签名URL临时授权上传文件的相关示例

import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.entity.FileEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;

import java.io.File;
import java.io.IOException;

public class Test {
  public static void main(String[] args) throws IOException {
    CloseableHttpClient httpClient = null;
    CloseableHttpResponse response = null;
    String pathName = "xxxx/xxxx/test.pdf";
    URL signedUrl = new URL("https://xxxxxx.amazonaws.com.cn/6307ced9-c793-450f-a2a5-5c4f615619af.pdf?xxxxx");
    try {
      // 获取文件 MIME 类型
      String mimeType = Files.probeContentType(Paths.get(pathName));
      if (mimeType == null) {
        mimeType = "application/octet-stream"; // 设置默认 MIME 类型
      }
      HttpPut put = new HttpPut(signedUrl.toString());
      HttpEntity entity = new FileEntity(new File(pathName));
      put.setEntity(entity);

      // 设置 Content-Type
      put.setHeader("Content-Type", mimeType);
      httpClient = HttpClients.createDefault();
      response = httpClient.execute(put);

      System.out.println("返回上传状态码:" + response.getStatusLine().getStatusCode());
      if (response.getStatusLine().getStatusCode() == 200) {
        System.out.println("上传成功");
      }
      System.out.println(response.toString());
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if (response != null) {
        response.close();
      }
      if (httpClient != null) {
        httpClient.close();
      }
    }
  }
}

results matching ""

    No results matching ""