如何从 AWS Elastic BeanStalk 获取更新的“上传”文件夹?
Posted
技术标签:
【中文标题】如何从 AWS Elastic BeanStalk 获取更新的“上传”文件夹?【英文标题】:How to get the updated 'uploads' folder from AWS Elastic BeanStalk? 【发布时间】:2017-04-07 01:59:11 【问题描述】:我在弹性 beantalk 中托管了我的服务器端编码。我使用 multer 将文件上传到“上传”文件夹中,这意味着使用 api 客户端可以在这个“上传”文件夹中动态存储图像或 pdf 等。当我在 ebs 中托管 .zip 时,说一些 3 个文件存储在上传文件夹中。托管后会添加更多文件。现在,如果我更改代码并将代码部署到 ebs,则会创建空的上传文件夹。如果我下载之前的代码,我只会得到托管时存在的 3 个文件。我无法取回托管代码后添加的文件。如何克服?
【问题讨论】:
【参考方案1】:在 ElasticBeanstalk 上托管应用程序的第一条规则是您的代码应该是无状态的。无状态是指它根本不应该依赖于机器,因为实例会根据扩展要求创建和关闭。
我所做的就是按照您说的做,将其上传到上传文件夹,然后我将其存储在 S3 中(或者如果实例终止,则存储在安全的地方)。所以基本上上传文件夹只是一个临时位置。
动态创建的内容不应成为代码库的一部分。
您无法获取丢失的数据,因为每当您部署新版本时,部署代码的目录都会被删除,新版本会被复制到那里。我相信它的/var/app/current/
。
以后每当你想处理上传时,你应该遵循:
-
将其上传到实例上的临时目录,
将其上传到安全的地方(比如 AWS S3),
将安全存储中对象的链接(S3 链接)保存到数据库中,以便您可以根据需要获取上传。
【讨论】:
以上是关于如何从 AWS Elastic BeanStalk 获取更新的“上传”文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 AWS Elastic BeanStalk 获取更新的“上传”文件夹?
直接从 Bitbucket 部署到 AWS Elastic Beanstalk
如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?