我想从节点中的 swift 容器中获取文件。
我正在使用此代码发出请求(很大程度上受此代码的启发):
var client = https.request(options, function(res) {
var buffers = [];
res.body='';
res.on('data', function(buffer) {
buffers.push(buffer);
});
res.on('end', function(err){
res.body = buffers.join('');
callback && callback(res);
});
});
如果下载文本文件,则没有问题,但对于二进制数据,下载的文件与原始文件在一些字节后出现差异(258 与 mp3 文件)。
你知道什么会导致这样的腐败吗?字符编码,我必须删除的结束字符,错误的数据合并方式,......
更新
我让它像这样工作:
var client = https.request(options, function(res) {
res.body='';
res.on('data', function(buffer) {
res.body+= buffer.toString('binary');
});
res.on('end', function(err){
callback && callback(res);
});
});
但是文档中写到 toString('binary') 很快就会被弃用,所以这不是最好的解决方案。