我正在更改我的代码以从http get而不是s3对象获取远程图像并且在数据方面遇到一些问题。数据不是空的,似乎是一个图像二进制文件 - 但我发送错误的流格式或其他东西 - 或者将无效格式发送到graphicsmagick构造函数?
我收到错误
var request = require('request');
var gm = require('gm').subClass({imageMagick: true}); // Enable ImageMagick integration.
var imageType = require('image-type');
request('http://c3.diapers.com/images/products/p/PG/PG-418_1z.jpg', function(error, response, body) {
if (error) {
console.error('unable to download image ' + err);
return res.status(404).send('unable to download image ' + err);
}
if (!body)
return res.status(404).send('no body response for image');
var original = gm(body);
original.size(function (err, size) {
if (err) {
console.error(err);
return res.status(500).send(err);
}
resize_photo(size, targetSize, original, function (err, photo) {
res.setHeader('Content-Type', 'image/jpeg');
res.send(photo);
});
});
});
使用以下代码
module.exports = {
...
entry: "./webpack-entry-module.js",
...
}
答案 0 :(得分:0)
所以问题是数据以字符串而不是二进制形式返回。我必须在请求选项中设置encoding:null,然后它才能工作。