これが私がやろうとしていることです:
- API で指定された URL から画像の生データ (jpeg) を取得する
- 生データまたはバッファを別のサーバーにアップロードする関数に渡します
- イメージをディスクにパイプしないでください
私が見つけたすべての例(ディスクにパイプしない)に従いましたが、それでもコンテンツは破損しています。さまざまな「accept-encodings」(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);
});
});