Ich habe eine Anwendung auf meinem lokalen Rechner (Mac OS X) erstellt, die einen Bericht generiert und in einem Ordner in meinem Webprojektordner speichert. Wenn ich die App bereitstelle, sollte dieser Ordner ebenfalls veröffentlicht werden. Zugegeben, niemand sollte Zugriff auf diesen Ordner haben, außer auf die App. Wenn ich den Code ausführen, um den Bericht zu generieren, funktioniert es auf meinem lokalen Computer, aber es scheint auf elastischem Bohnenranke zu hängen. Was muss ich tun, um dies in der Umgebung mit elastischen Bohnen möglich zu machen?Elastic Beanstalk: Wie schreibe ich Dateien in einen Ordner in meinem Projektordner node.js
Kurz gesagt, verwende ich Phantomjs, um eine dynamische Webseite in eine PDF-Datei zu konvertieren, die per E-Mail an die entsprechenden beteiligten Parteien gesendet wird. Hier ist der Code, der die Datei erzeugt:
page.viewportSize = { width: 2000, height: 800 };
//page.paperSize = { format: 'Letter', orientation: 'landscape', margin: '1cm' };
page.paperSize = { width: '1280px', height: '800px', margin: '0px' };
page.settings.localToRemoteUrlAccessEnabled = true;
page.settings.loadImages = true;
page.settings.javascriptEnabled = true;
page.open("http://example.com/report/" + args[1], function start(status) {
if (status === 'fail'){
phantom.exit(1);
return;
}
//page.render('/dev/stdout', { format: 'pdf' });
page.render(fs.workingDirectory + '/tmp/' + args[3], { format: 'pdf' });
phantom.exit();
return;
});
Wo kann ich diesen Ordner hinzufügen, um ihn beschreibbar zu machen? – user1790300
Muss ich einen Remote-Desktop in das Gerät einstecken? – user1790300
Wenn Ihr EB-Server Linux ausführt, sollte '/ tmp' automatisch verfügbar und standardmäßig schreibbar sein. Es wäre jedoch wahrscheinlich sinnvoller, eine Node-Methode wie 'os.tmpdir()' zu verwenden, anstatt den Verzeichnisnamen fest zu codieren. – Brian