为了获得完整的想法,该项目包含一个带有下载按钮的网页,单击该按钮时,会将文本文件下载到用户计算机。该网页使用 Javascript 和 PHP,它们将调用 Java AWS-Lambda 函数。java从数据库中获取文本。
最初,我让它在本地工作:
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);
但是,由于使用 Lambda 函数的性质,我不能像保存到本地那样容易地保存到服务器(需要以编程方式进行 SSH 处理等)。另外,我的前辈要求我让我的项目不必将文件保存到服务器,这样我们以后不必管理删除它们。
我现在一直在尝试这样做:
StreamFactory sf = StreamFactory.newInstance();
sf.loadResource("mapping.xml");
OutputStreamWriter output;
BeanWriter bw = sf.createWriter("export", output);
// beans written bellow
...
bw.write(recordName, bean);
我读过 createWriter 可以使用编写器而不是文件,但我不明白如何在 javascript 端使用它来下载文件。目前,该端的代码很简单,如下所示:
<a href="http://website.com/location/test.txt"download="test.txt">Download</a>
这个项目没有使用 servlet。我的大四学生坚持使用 AWS-Lambda 和写入流。它需要使用 BeanIO。我见过的大多数类似问题都没有这些挑战,所以这个问题不应该因为重复而被关闭。