我有一个将在Elastic Beanstalk上托管的PHP API。用户将图像上传到此API。一旦API获得它,在PHP中我将文件存储在临时文件夹中,然后将其调整为多种大小,然后将其上载到S3 Bucket。
它在本地工作,但我还没有把它放到现场。一旦它在弹性beanstalk实例上,这可能吗?我知道当我在本地使用它时我必须给temp_image目录写入权限所以当它在弹性beanstalk上运行时我是否必须这样做?如果是这样,我如何管理弹性beanstalk上的文件夹目录?每次更新API时,我都必须这样做吗?
我想到的另一个解决方案是拥有一个temp_image S3 Bucket并从中开始工作?
任何建议都会非常感谢!
答案 0 :(得分:1)
ElasticBeanstalk部署在部署后被视为不可变的,因此您可能必须更改临时文件夹的权限。值得庆幸的是,这样做非常简单。执行chown
或container_commands:
chown_folder:
command: "chown webapp temp_image"
chmod_folder:
command: "chmod 775 temp_image"
等操作的机制是通过配置文件,描述为here。 ElasticBeanstalk配置文件作为部署的一部分调用,因此每次更新API时都应自动应用权限。
在你的情况下,你会使用这样的东西:
<强> .ebextensions / 01-化妆临时文件夹-writeable.config 强>
rev_head
确保注意缩进 - YAML文件对空格非常敏感。