2017-03-19 2 views
0

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

Antwort

1

Das Verzeichnis, in dem Ihre ElasticBeanstalk Anwendung bereitgestellt wird, sollte nur schreib in Betracht gezogen werden, nachdem die Bereitstellung abgeschlossen ist. Wenn Sie Dateien zur Laufzeit schreiben müssen, sollten Sie ein beschreibbares Verzeichnis wie /tmp verwenden.

+0

Wo kann ich diesen Ordner hinzufügen, um ihn beschreibbar zu machen? – user1790300

+0

Muss ich einen Remote-Desktop in das Gerät einstecken? – user1790300

+0

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

Verwandte Themen