0
我在我的节点(sails js)项目上使用webshot将HTML字符串转换为图像,然后将该图像上传到S3存储桶。当我在本地机器上运行它时,它可以正常工作,即生成图像,并且可以将该图像上传到s3存储桶。但是,当我在EC2实例(Ubuntu 16)上运行相同的代码时,它不起作用。它不会创建任何图像,因此不会上传任何内容。Node-webshot - 图像没有在服务器上生成,但相同的代码在本地生成图像
这里是我的代码 -
var htmlString = '<div>a long html string</div>';
webshot(htmlString,'img.png', options, function(err) {
fs.readFile('img.png', function (err, data){
if(err){
console.log('error reading file');
}else{
var params = {
Bucket: bucket,
Key: 'customPNGs/'+'img.png',
Body: data,
ACL: 'public-read',
ContentType: 'image/png'
};
s3.putObject(params, function (err, res) {
if (err) {
sails.log.error("Error uploading data: ", err);
} else {
console.log('uploaded')
}
});
}
});
我试图使用流直接做上传到S3,但上载0KB文件。下面是使用流我的代码 -
var renderStream = webshot(quitImageHTML, null, options);
var ss = '';
renderStream.on('data', function(data) {
ss+=data.toString('binary');
});
renderStream.on('end', function() {
//upload using the above code
});