AWS Elastic Beanstalk.用户上传文件的保存路径


AWS Elastic Beanstalk. Where to save files uploaded by the users?

我把我的旧网站搬到了AWS。

我已经使几个资产工作,如:-我的网站显示在我的域名下。-我的SQL数据库是在线的,它可以从我的本地机器访问。-我启动了一个Linux AMI实例和一个Elastic Beanstalk php环境来运行我的php应用程序,它也可以工作。

现在我的php应用程序应该偶尔读取和写入我的网站访问者上传的一些图像文件(通过javascript和php脚本)。

在我以前的虚拟主机上,这很容易。php脚本读取/写入用户的图像文件在一个给定的目录从我的http域访问。

在AWS上,我试图手动上传一个映像文件到Elasticbeanstalk Linux桶的根(在那里我找到了我的php应用程序zip文件),例如。"usersimages/image.png"但现在如果我输入http://example.com/usersimages/image.png我得到一个404错误。

所以,一切都只在不透明的php应用程序内工作,而不是在外部。我不能将这些用户文件包含在php zip文件中。目录" userimages "包含动态数据,独立于我的php应用程序。

所以我的问题是:在哪里以及如何读/写用户的图像文件?

最好将用户的图片直接上传到S3。这样可以使它们远离Beanstalk实例,并且可以轻松地将图像包含在页面中。上传是使用一种称为预签名上传url的方法完成的。您可以在PHP中创建预签名URL,并在HTML表单中使用该URL来上传文件。一个例子是客户端上传到s3,带有预签名的上传表单(PHP/JS)。