我在本地计算机(mac os x)上创建了一个应用程序,它生成一个报告并将其保存到我的web项目文件夹中的文件夹中。当我部署应用程序时,该文件夹也应该发布。当然,没有人应该访问这个文件夹,但应用程序。当我运行代码生成报告在我的本地机器上工作正常,但它似乎挂在弹性beanstalk上。我需要做些什么才能在弹性beanstalk环境中工作?
简而言之,我使用phantomjs将动态网页转换为pdf文件,该文件通过电子邮件发送给相关各方。以下是生成文件的代码:
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;
});
答案 0 :(得分:1)
部署完成后,应将ElasticBeanstalk应用程序部署到的目录视为只读。如果需要在运行时编写文件,则应使用可写目录,例如/tmp
。