You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于DocuSign eSign RestApi ChunkedUploads:如何分块发送EnvelopeDefinition

解决DocuSign API分块上传EnvelopeDefinition的问题

我刚好处理过类似的分块上传场景,要把EnvelopeDefinition封装到ChunkedUploadRequest里,核心是把对象序列化为JSON字节流,再赋值给Data属性。下面是具体步骤和代码示例:

具体实现步骤

  • 序列化EnvelopeDefinition:将你的EnvelopeDefinition对象转换成JSON字符串,推荐用DocuSign官方SDK兼容的序列化方式(比如Newtonsoft.Json,因为DocuSign SDK内部常用这个库)。
  • 转换为字节数组:把JSON字符串用UTF-8编码转换成字节数组,这是ChunkedUploadRequest.Data需要的格式。
  • 赋值并发起请求:把字节数组赋值给ChunkedUploadRequest的Data属性,然后调用CreateChunkedUploadAsync接口。

完整代码示例

// 假设你已经构建好了EnvelopeDefinition对象
var envelopeDefinition = new EnvelopeDefinition
{
    // 填充你的信封配置:收件人、文档、状态等
    EmailSubject = "请签署这份文档",
    Status = "sent",
    // 其他属性...
};

// 1. 序列化EnvelopeDefinition为JSON字符串
string jsonEnvelope = JsonConvert.SerializeObject(envelopeDefinition, new JsonSerializerSettings
{
    NullValueHandling = NullValueHandling.Ignore // 忽略空值,减少数据大小
});

// 2. 转换为UTF-8字节数组
byte[] envelopeBytes = Encoding.UTF8.GetBytes(jsonEnvelope);

// 3. 构建ChunkedUploadRequest并赋值Data
var request = new ChunkedUploadRequest
{
    Data = envelopeBytes,
    // 可选:如果是多块上传,需设置ChunkNumber和TotalChunks
    // ChunkNumber = 1,
    // TotalChunks = 1,
    // 其他必要参数...
};

// 发起分块上传请求
var response = await envelopesApi.CreateChunkedUploadAsync(ApiAccountId, request);

注意事项

  • 如果你的信封包含大文档(比如超过10MB),建议将文档内容单独分块上传,而不是把整个带文档的EnvelopeDefinition一次性序列化。可以先上传文档块,再在EnvelopeDefinition中引用已上传的文档ID。
  • 确保序列化时使用的JSON设置和DocuSign SDK内部一致,避免因格式问题导致接口报错。
  • 多块上传时,记得正确设置ChunkNumber和TotalChunks参数,确保所有块都按顺序上传完成。

内容的提问来源于stack exchange,提问作者Clemens

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:15:12