2016-08-26 13 views
0

私のノード(sails js)プロジェクトで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に直接アップロードをやってみましたが、それは0キロバイトのファイルをアップロードします。ここに私のコードは、ストリームを使用している -

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

答えて

4

だから、webshotが内部phantomjsを使用し、phantomjsはそのドキュメントとの依存関係セクションに存在しないlibfontconfigと呼ばれる秘密の依存関係を持っているようです。

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

私は依存関係をインストールしたら、それは仕事を始めました。

関連する問題