通过上传方式创建文件

更新时间:2021/04/22 16:13:24

接口描述

通过该接口获取文件fileId和上传地址uploadUrl,并通过上传方式将文件上传至e签宝服务端,用于后续发起签署流程使用,上传方法请参考:文件流上传方法

注意:

(1)上传的文件大小不要超过40M,详见文件大小规则说明

(2)因Windows操作系统中文件名称不支持个别特殊字符,现调整fileName字段不支持以下9个字符

/ \ : * " < > | ?以及所有emoji表情,详见文件名称特殊字符限制

(3)上传的文件类型规则描述,详见文件类型规则说明

点击查看具体更新日志


API在线调试

可通过API在线调试工具使用接口功能,入口:通过上传方式创建文件


接口

/v1/files/getUploadUrl

请求方式

POST

请求头

提供两种安全接入方式,开发者可选择其中一种方式进行对接,对应参数如何获取,参考文档【请点击】。

方式一:请求签名鉴权

请求头入参示例如下:

参数名称

类型

必选

参数说明

示例值

X-Tsign-Open-App-Id

string

项目ID


Content-Type

string

application/json;charset=UTF-8


X-Tsign-Open-Ca-Timestamp

string

API 调用者传递时间戳,值为当前时间的毫秒数,也就是从1970年1月1日起至今的时间转换为毫秒,时间戳有效时间为15分钟,为了防重放攻击


Accept

string

建议统一填写 */*


X-Tsign-Open-Ca-Signature

string

签名字符串


Content-MD5

string

当请求 Body 非 Form 表单时,可以计算 Body 的 MD5 值传递给云网关进行 Body MD5 校验。建议当请求 Body 非 Form 表单时,加上此请求头。


X-Tsign-Open-Auth-Mode

string

选择请求方式进行鉴权,固定值,Signature


方式二:OAuth2.0鉴权

当安全接入选择OAuth2.0鉴权方式请点击查阅详情,请求头入参示例如下:

参数名称

类型

必选

参数说明

X-Tsign-Open-App-Id

string

项目ID

X-Tsign-Open-Token

string

通过获取鉴权Token接口返回

Content-Type

string

application/json; charset=UTF-8


请求参数

参数名称

类型

必选

参数类型

参数说明

示例值

contentMd5

string

body

先获取文件MD5的二进制数组(128位)再对这个二进制进行base64编码。

(1)获取代码示例:【请点击

(2)可使用E签宝官网工具进行计算【请点击



contentType

string

body

目标文件的MIME类型,支持:

(1)application/octet-stream

(2)application/pdf

注意,后面文件流上传的Content-Type参数要和这里一致,不然就会有403的报错


convert2Pdf

boolean

body

是否转换成pdf文档,默认false,代表不做转换。转换是异步行为,如果指定要转换,需要调用查询文件信息接口查询状态,转换完成后才可使用。
注意:如果本身就是PDF文件,该参数必须传false


fileName

string

body

文件名称(必须带上文件扩展名,不然会导致后续发起流程校验过不去 示例:合同.pdf );

注意:

(1)该字段的文件后缀名称和真实的文件后缀需要一致。比如上传的文件类型是word文件,那该参数需要传“xxx.docx”,不能是“xxx.pdf”

(2)文件名称不支持以下9个字符:/ \ : * " < > | ?


fileSize

int64

body

文件大小,单位byte


公共响应参数

参数名称

类型

必选

参数说明

示例值

code

int

业务码,0表示成功


message

string

信息


data

object

业务信息


响应参数

参数名称

类型

必选

参数说明

示例值

fileId

string

文件Id


uploadUrl

string

文件直传地址, 可以重复使用,但是只能传一样的文件,有效期一小时


请求示例  

POST https://openapi.esign.cn/v1/files/getUploadUrl
{
"contentMd5":"eGMHwA4TWnbg6PYKMxreUQ==",
"contentType":"application/octet-stream",
"convert2Pdf":false,
"fileName":"附件.zip",
"fileSize":2542635
}

响应示例

{
"code":0,
"data":{
"fileId":"049d33945cde46b7953bf377fe2a7608",
"uploadUrl":"https://esignoss.oss-cn-hangzhou.aliyuncs.com/1111563786/d8d35867-744b-47f3-890f-e3650efd99e1/%E9%99%84%E4%BB%B6.zip?Expires=1561472338&OSSAccessKeyId=STS.NHmxRMcKLPqz9km2veAujyrCB&Signature=aM8p6T/Sby30bBUVt%2BfOcYR36t0%3D&callback-var=eyJ4OmZpbGVfa2V5IjoiJGFkNTlkZjExLThmNzMtNDdkZC05MTIwLTk1MDNlOTk4NDNkYSQzMTc3NzA4NTIifQ%3D%3D%0A&callback=eyJjYWxsYmFja1VybCI6Imh0dHA6Ly90ZmlsZS50c2lnbi5jbi9maWxlLXN5c3RlbS9jYWxsYmFjay9hbGlvc3MiLCJjYWxsYmFja0JvZHkiOiAie1wibWltZVR5cGVcIjoke21pbWVUeXBlfSxcInNpemVcIjogJHtzaXplfSxcImJ1Y2tldFwiOiAke2J1Y2tldH0sXCJvYmplY3RcIjogJHtvYmplY3R9LFwiZXRhZ1wiOiAke2V0YWd9LFwiZmlsZV9rZXlcIjoke3g6ZmlsZV9rZXl9fSIsImNhbGxiYWNrQm9keVR5cGUiOiAiYXBwbGljYXRpb24vanNvbiJ9%0A&security-token=CAIS%2BAF1q6Ft5B2yfSjIr4vYM%2Bj5jpRt57ORO03c1nYwTfpGlrfooDz2IHtKdXRvBu8Xs/4wnmxX7f4YlqB6T55OSAmcNZEoDH68YdPkMeT7oMWQweEurv/MQBqyaXPS2MvVfJ%2BOLrf0ceusbFbpjzJ6xaCAGxypQ12iN%2B/m6/Ngdc9FHHPPD1x8CcxROxFppeIDKHLVLozNCBPxhXfKB0ca0WgVy0EHsPnvm5DNs0uH1AKjkbRM9r6ceMb0M5NeW75kSMqw0eBMca7M7TVd8RAi9t0t1/IVpGiY4YDAWQYLv0rda7DOltFiMkpla7MmXqlft%2BhzcgeQY0pc/RqAAWbkTMmUIhYPd/RICa6Mo/WvK%2BqWh2U1FUDTcoyOUFICU9W6AT9DIA5nqxIlfGpOrIsQtCXK5Nl5lqX3aRev2zbr9ZhFcHWRPZ2GZKr92ppjxCThZ756EG49vggXLFd3VHRQT3ABI90LcXPxkmVrEW5nji4wJKX3k1AO0G6Whpjn"
},
"message":"成功"
}



错误码

错误码

错误描述

解决方案

401



1.token过期了

2.header请求头不正确

3.apiurl和应用ID环境不对应,例如apiurl是模拟环境,应用ID是正式环境的