gpt4 book ai didi

grails - 在EC2 Amazon Linux实例上托管Grails

转载 作者:行者123 更新时间:2023-12-02 15:42:15 27 4
gpt4 key购买 nike

我已经在linux ec2上的Tomcat 8和Java 8上成功将Grails应用程序上载并部署在Amazon Elastic beantalk上,并且Web应用程序已启动并正在运行。与RDS数据库进行REST API调用时,它很好用。我有一个api从移动应用程序和Web应用程序前端将文件上传到服务器。当在本地主机上运行此grails应用程序时,其适用于该api并很好地将文件成功上传到我的user.home/{myapplicationDirectory}/somefile中的Windows OS路径。但是在 flex beantalk中运行此应用程序并尝试从移动设备上传图像后,NPE为FileNotFoundException

FileNotFoundException occurred when processing request: [POST] /api/images/add
/usr/share/tomcat8/sdpl/images/260519011919.zip (No such file or directory)
Stacktrace follows:

java.io.FileNotFoundException: /usr/share/tomcat8/sdpl/images/260519011919.zip (No such file or directory)
at java.io.FileOutputStream.open(FileOutputStream.java:270)

我有一种通过这种方法获取应用程序数据存储目录的服务
 def String getApplicationPath() {
return System.getProperty("user.home") + File.separator + "images" + File.separator;
}

最佳答案

嗨,因为我没有看到完整的应用程序,所以我不想太冒昧,但是当您使用AWS Beanstalk时,应该将本地文件存储始终视为临时存储。如果服务器停止响应或未通过任何运行状况检查,则服务器可能会被beantalk终止并重新启动。
您还有其他可用选项,我也不知道您是否考虑过这些选项,并且有充分的理由使用本地文件系统,因此请原谅我,但是如果没有,您可以使用S3来存储图像,然后您不必担心磁盘空间,然后可以通过AWS的CDN-Cloudfront自动提供图像,从而也减少了应用程序的负载。

另外,当您确实要将这些图像存储在文件系统中时,可以考虑使用EFS( flex 文件系统)。您的EBS实例可以在启动时挂载文件系统,因此无论您何时启动实例,该文件系统将始终可用。

我不建议使用标准EBS卷,因为您只能将卷附加到单个实例,如果您使用EFS,则不必担心空间,它可以挂载到多个实例,因此只需一点点更灵活。

关于grails - 在EC2 Amazon Linux实例上托管Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56309999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com