Um eine vollständige Idee zu erhalten, besteht das Projekt aus einer Webseite mit einem Download-Button, der eine Textdatei auf den Computer des Benutzers herunterlädt. Die Webseite verwendet Javascript und PHP, die eine Java AWS-Lambda-Funktion aufrufen. Der Java greift Text aus einer Datenbank.BeanIO - wie man so schreibt Benutzer kann eine Datei herunterladen nicht auf dem Server gespeichert
Ursprünglich hatte ich es vor Ort als so arbeiten:
StreamFactory sf = StreamFactory.newInstance();
sf.loadResource("mapping.xml");
File file = new File("C:\\test.txt");
BeanWriter bw = sf.createWriter("export", file);
// beans written bellow
...
bw.write(recordName, bean);
jedoch aufgrund der Art von Lambda-Funktionen verwendet wird, kann ich nicht so einfach auf den Server speichern, wie ich zu meinem lokalen retten könnte (würde programmgesteuert SSH-ing erfordern, usw.). Außerdem hat mein Senior angefordert, dass ich mein Projekt nicht gezwungen habe, Dateien auf dem Server zu speichern, damit wir sie nicht später löschen müssen.
Ich habe versucht, nun es wie folgt zu tun:
StreamFactory sf = StreamFactory.newInstance();
sf.loadResource("mapping.xml");
OutputStreamWriter output;
BeanWriter bw = sf.createWriter("export", output);
// beans written bellow
...
bw.write(recordName, bean);
ich gelesen habe, dass createWriter einen Schriftsteller statt einer Datei verwenden können, aber ich verstehe nicht, wie das innerhalb verwendet werden könnten die JavaScript-Seite zum Herunterladen als Datei. Derzeit ist der Code an diesem Ende einfach und sieht so aus:
<a href="http://website.com/location/test.txt"download="test.txt">Download</a>
Dieses Projekt verwendet keine Servlets. Mein Senior ist es, AWS-Lambda zu verwenden und in einen Stream zu schreiben. Es muss BeanIO verwenden. Die meisten der ähnlichen Fragen, die ich gesehen habe, haben diese nicht als Herausforderungen, daher sollte diese Frage nicht als Duplikat geschlossen werden.