Skip to content

预签名URL请求说明

请求PDF工具列表

该接口用于获取ComPDF API支持的所有PDF工具集合,可以查询各个PDF工具的URL。

请求方式

  • 请求方式:GET
  • 参数传递方式:Query

请求地址

https://api-server.compdf.com/server/v2/tool/support

返回参数

参数数据类型说明
sourceTypeNameString源文件格式
targetTypeNameString目标文件格式
executeTypeUrlString执行任务的类型
java
"code": "200",
"msg": "success",
"data": {
  {
    "sourceTypeName": "pdf",
    "targetTypeName": "docx",
    "executeTypeUrl": "pdf/docx"
  },
  {
    "sourceTypeName": "pdf",
    "targetTypeName": "jpg",
    "executeTypeUrl": "pdf/jpg"
  },
  {
    "sourceTypeName": "doc",
    "targetTypeName": "pdf",
    "executeTypeUrl": "doc/pdf"
  }
  ......
}

获取任务预签名URL

获取预签名URL和任务ID,您可以通过返回的预签名URL在本地上传文件,无需将文件直接发送到服务器。

请求方式:

  • 请求方式:POST。
  • 传参方式:Body (form-data)。

请求参数:

参数名数据类型描述是否必填
executeTypeUrlString功能类型是(和任务ID二选一)
taskIdString任务ID是(和功能类型二选一)
fileNameString上传的文件名
passwordString文件密码
parameterString文件处理参数
languageInteger接口错误提示语言(1. 英文,2. 中文)
  • 首次请求时,传入 executeTypeUrl,接口将创建新任务并返回 taskId
  • 后续上传同一任务的其他文件时,传入 taskId 即可,无需再传 executeTypeUrl
  • Parameter 字段只针对目前支持设置处理参数的功能。如没有设置参数,则会用默认值。不同功能类型对应的 JSON 格式以及字段解释见具体工具指南。

请求地址:

https://api-server.compdf.com/server/v2/presignedUrl

返回参数:

返回参数数据类型描述
taskIdString任务ID
presignedUrlString预签名URL
json
{
    "code": "200",
    "msg": "success",
    "data": {
        "taskId": "401852da-cca5-475e-b475-2bd259f273d5",
        "presignedUrl": "<presignedUrl>"
    }
}

cURL 示例:

bash
curl --location --request POST 'https://api-server.compdf.com/server/v2/presignedUrl?language=2' \
--header 'x-api-key: public_key' \
--form 'executeTypeUrl="pdf/docx"' \
--form 'taskId=""' \
--form 'fileName="test.pdf"' \
--form 'password=""' \
--form 'parameter=""' \
--form 'language=""'

通过预签名URL上传文件

获取到预签名URL后,您可以使用该URL直接上传文件。上传时需使用 PUT 请求,将文件以二进制流的方式发送。

请求方式:

  • 请求方式:PUT。
  • 传参方式:Body (binary)。

请求地址:

返回的预签名URL(presignedUrl 字段)。

请求头:

请求头
Content-Typeapplication/octet-stream
Accept*/*
Connectionkeep-alive

请求体:

上传的文件二进制数据。

cURL 示例:

bash
curl --location --request PUT '<presignedUrl>' \
--header 'Content-Type: application/octet-stream' \
--header 'Accept: */*' \
--header 'Connection: keep-alive' \
--data-binary '@file.pdf'

执行任务

所有文件上传完成后,调用此接口开始执行任务处理。

请求方式:

  • 请求方式:GET。
  • 传参方式:Query。

请求参数:

参数名数据类型描述是否必填
taskIdString任务ID
languageInteger接口错误提示语言(1. 英文,2. 中文)

请求地址:

https://api-server.compdf.com/server/v2/execute/start?taskId={taskId}&language={language}

返回参数:

返回参数数据类型描述
taskIdString任务ID
json
"code": "200",
"msg": "success",
"data": {
    "taskId": "f416dbcf-0c10-4f93-ab9e-a835c1f5dba1"
}

获取任务信息

根据任务ID获取任务状态以及文件相关的元数据。

请求方式:

  • 请求方式:GET。
  • 传参方式:Query。

请求参数:

参数名数据类型描述是否必填
taskIdString任务ID
languageInteger接口错误提示语言(1. 英文,2. 中文)

请求地址:

https://api-server.compdf.com/server/v2/task/taskInfo?taskId={taskId}

返回参数:

返回参数数据类型描述
taskIdString任务ID
taskFileNumInteger任务文件个数
taskSuccessNumString成功个数
taskFailNumString失败个数
taskStatusString任务状态
assetTypeIdString使用资产类型
taskCostString任务费用
taskTimeLong任务持续时间 (ms)
sourceTypeLong源文件格式
targetTypeLong目标文件格式
fileInfoDTOListList任务文件信息
java
"code": "200",
"msg": "success",
"data": {
    "taskId": "f416dbcf-0c10-4f93-ab9e-a835c1f5dba1",
    "taskFileNum": 1,
    "taskSuccessNum": 1,
    "taskFailNum": 0,
    "taskStatus": "TaskFinish",
    "assetTypeId": 0,
    "taskCost": 1,
    "taskTime": 1,
    "sourceType": "pdf",
    "targetType": "docx",
    "fileInfoDTOList": [
      {
        "fileKey": "ba13a2a8-1278-43d4-a9a6-7ecc28a0804f",
        "taskId": "f416dbcf-0c10-4f93-ab9e-a835c1f5dba1",
        "fileName": "test.pdf",
        "downFileName": "test.docx",
        "fileUrl": "<fileUrl>",
        "downloadUrl": "<downloadUrl>",
        "sourceType": "pdf",
        "targetType": "docx",
        "fileSize": 24475,
        "convertSize": 6922,
        "convertTime": 8,
        "status": "<status>",
        "failureCode": "",
        "failureReason": "",
        "fileParameter": "{    \"pageOptions\": \"3\"}"
      }
    ]
}

备注:

taskStatus :任务处理状态

状态内容状态描述
TaskStart任务创建成功
TaskWaiting任务等待处理
TaskProcessing任务开始处理中
TaskFinish任务处理完成
TaskOverdue任务等待处理超时

获取资产详情

获取当前用户剩余资产

请求方式

  • 请求方式:GET
  • 参数传递方式:Query

请求地址

https://api-server.compdf.com/server/v2/asset/info

返回参数

返回参数数据类型说明
tenantAssetArray资产信息
assetTypeNameString资产类型
assetInteger资产余额
withholdingAssetInteger预扣资产总额
java
"code": "200",
"msg": "success",
"data": {
    "tenantAsset": [
      {
        "assetTypeName": "SUBSCRIPTIONS",
        "asset": 12,
        "withholdingAsset": 0
      },
      {
        "assetTypeName": "PACKAGES",
        "asset": 1,
        "withholdingAsset": 0
      }
    ]
}

获取任务列表

请求当前用户文件传输任务列表。

请求方法

  • 请求方法:GET
  • 参数传递方式:Query

请求参数

  • page:Pagination - 当前页数,非必填,不填默认为1。
  • size:Pagination - 每页显示项数,非必填,不填默认为10。
参数数据类型说明必填项
pageLong当前页数否(不填默认为1)
sizeLong页数否(不填默认为10)

请求地址

https://api-server.compdf.com/server/v2/task/list

返回参数

参数数据类型说明
createdByString创始人
updatedByString更新者
creationTimeLocalDateTime创建时间
updateTimeLocalDateTime更新时间
idLong任务主键 id
taskIdString任务 id
taskUrltaskUrl任务原始文件夹
taskLoadUrlString任务转换文件夹
taskFileNumInteger任务文件数
taskSuccessNumInteger成功次数
taskFailNumInteger失败次数
taskStatusString任务状态
assetTypeIdInteger使用资产类型
taskCostInteger任务成本
taskTimeLong任务持续时间
callbackUrlString回调地址
serverString服务器地址
sourceTypeString源文件格式
targetTypeString目标文件格式
tenantIdLong租户 ID
java
{
    "records": [
      {
        "createdBy": null,
        "updatedBy": null,
        "creationTime": "2022-08-31 15:06:20",
        "updateTime": "2022-08-31 15:14:44",
        "id": 771751854513061888,
        "taskId": "a300c232-0a2d-4e3c-95f2-cfb4604b2018",
        "taskUrl": "",
        "taskLoadUrl": "",
        "taskFileNum": 3,
        "taskSuccessNum": 0,
        "taskFailNum": 0,
        "taskStatus": "TaskFinish",
        "assetTypeId": 0,
        "taskCost": 3,
        "taskTime": 0,
        "callbackUrl": "",
        "server": "",
        "sourceType": "pdf",
        "targetType": "docx",
        "tenantId": 1
      },
      {
        "createdBy": null,
        "updatedBy": null,
        "creationTime": "2022-08-31 15:25:24",
        "updateTime": "2022-08-31 15:26:17",
        "id": 771756653954465793,
        "taskId": "e74d60a6-fbd3-4d7d-9efa-0dc70297ee0b",
        "taskUrl": "",
        "taskLoadUrl": "",
        "taskFileNum": 3,
        "taskSuccessNum": 3,
        "taskFailNum": 0,
        "taskStatus": "TaskFinish",
        "assetTypeId": 0,
        "taskCost": 3,
        "taskTime": 3,
        "callbackUrl": "",
        "server": "",
        "sourceType": "pdf",
        "targetType": "docx",
        "tenantId": 1
      }
    ],
    "total": 528,
    "size": 2,
    "current": 1,
    "orders": [],
    "optimizeCountSql": true,
    "searchCount": true,
    "countId": null,
    "maxLimit": null,
    "pages": 264
}