这是我正在尝试做的事情:
- 从 API 提供给我的 URL 中检索图像 (jpeg) 的原始数据
- 将原始数据或缓冲区传递给将其上传到另一台服务器的函数
- 永远不要将映像通过管道传输到磁盘
我已经按照我能找到的每个示例(不通过管道传输到磁盘),但内容仍然损坏。我曾尝试强制执行各种“接受编码”(gzip、deflate),但它们基本上解析为相同的数据,只是压缩了。
我相信这与响应编码有关,而不是我要求数据的方式。
这是到目前为止的代码:
var parsedUrl = require('url').parse(PATH_TO_IMAGE)
var params = {
hostname: parsedUrl.hostname,
path: parsedUrl.path,
}
return http.get(params, function(photo_res) {
var photoData = '';
res.setEncoding('binary');
photo_res.on('data', function(chunk) {
photoData += chunk;
});
photo_res.on('end', function() {
// DO STUFF TO UPLOAD IMAGE
});
photo_res.on('error', function(err) {
console.error('Unable to download photo:', err);
return done(err);
});
});