Byte Stream与Byte String的区别及DocuSign术语使用疑问
DocuSign getDocument API 术语与解码疑问
背景
根据DocuSign文档,当您将文档文件添加到信封时,平台会将其转换为PDF并以base64编码的ASCII格式存储;而getDocument的REST API文档提到,默认情况下,响应是PDF文件的byte stream……通过在请求中使用
Content-Transfer-Encoding头,您可以获取base64编码的PDF文件。
我的理解
- 从DocuSign下载文档时,必须通过base64或“byte stream”解码回二进制表示,才能保存到磁盘或提供给需要
Buffer的其他服务。我使用NodeJS与DocuSign交互,具体代码如下:Buffer.from(pdfContent, "base64")(假设下载的是base64编码的PDF)Buffer.from(pdfContent, "binary")(binary是latin1的别名¹,假设下载的是“byte stream”格式的PDF)
- 从DocuSign下载文档时是一次性获取整个文件,并非以流的方式传输。两种情况下,都是从DocuSign获取完整字符串,而非字节块。
疑问
我对“byte stream”这个术语的使用感到困惑,因为DocuSign并没有以流的方式传输文件(我理解的流是指分块读取/写入资源,而非一次性获取全部)。如果我的理解正确,那么用byte string这个术语更合适。因此我有以下问题:
- 此处的byte stream是否与byte string被混用?
- 至少在NodeJS中,需要用
binary(或latin1)解码“byte stream”,那么DocuSign是否将“byte stream”定义为“必须用latin1字符编码解码的二进制代码”?
¹ 来自NodeJS Buffer文档:'binary':'latin1'的别名。该编码名称可能非常容易引起误解,因为此处列出的所有编码都在字符串和二进制数据之间进行转换。在字符串与Buffers之间转换时,通常'utf8'是正确的选择。
内容的提问来源于stack exchange,提问作者uzluisf
相关产品推荐
相关产品推荐

