gpt4 book ai didi

node.js - Node-webshot - 图像未在服务器上生成,但相同的代码在本地生成图像

转载 作者:太空宇宙 更新时间:2023-11-04 03:06:37 25 4
gpt4 key购买 nike

我在我的 Node (sails js) 项目上使用 webshot 将 HTML 字符串转换为图像,然后将该图像上传到 S3 存储桶。当我在本地计算机上运行它时,它工作正常,即它生成一个图像,并且我可以将该图像上传到 s3 存储桶。但是当我在 EC2 实例 (Ubuntu 16) 上运行相同的代码时,它不起作用。它不会创建任何图像,因此不会上传任何内容。

这是我的代码 -

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
});

最佳答案

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

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

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

关于node.js - Node-webshot - 图像未在服务器上生成,但相同的代码在本地生成图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39171509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com