首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node-webshot -图像不在服务器上生成,但相同的代码在本地生成图像

Node-webshot -图像不在服务器上生成,但相同的代码在本地生成图像
EN

Stack Overflow用户
提问于 2016-08-27 01:13:00
回答 1查看 610关注 0票数 0

我在我的节点(sails js)项目中使用webshot将HTML字符串转换为图像,然后将该图像上传到S3存储桶。当我在我的本地机器上运行它时,它工作得很好,即它生成了一个图像,我可以将该图像上传到s3存储桶中。但是当我在EC2实例(Ubuntu16)上运行相同的代码时,它不能工作。它不会创建任何图像,因此不会上传任何内容。

这是我的代码-

代码语言:javascript
复制
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')                  
     }
  });
}
});

我尝试使用streams直接上传到S3,但它上传了一个0kb的文件。这是我使用流的代码-

代码语言:javascript
复制
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
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-28 14:14:42

因此,webshot似乎在内部使用了phantomjs,并且phantomjs有一个名为libfontconfig的秘密依赖项,该依赖项在其文档和依赖项部分中没有出现。

https://github.com/ariya/phantomjs/issues/10904

一旦我安装了依赖项,它就开始工作了。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39171509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档