使用 AWS Elastic Beanstalk 进行部署时,是不是应该将静态文件存储在单独的 S3 中?

Posted

技术标签:

【中文标题】使用 AWS Elastic Beanstalk 进行部署时,是不是应该将静态文件存储在单独的 S3 中?【英文标题】:Should I store static files in a separated S3 when deploying with AWS Elastic Beanstalk?使用 AWS Elastic Beanstalk 进行部署时,是否应该将静态文件存储在单独的 S3 中? 【发布时间】:2021-11-16 01:55:25 【问题描述】:

我有一个在 AWS Elastic Beanstalk 上运行的 Django 应用程序。 Beanstalk 创建了一个 S3 存储桶来存储源代码、版本等。

我已配置 S3 存储桶来存储我的静态文件。每次我部署新版本的代码时,eb 都会正确运行collectstatic 命令并创建静态文件,但它会覆盖权限。因此,对于每次新部署,我都需要选择 static 文件夹并手动将对象设为 public

问题:将我的static 文件存储在同一个存储桶中是否正确,或者我应该使用公共策略创建一个单独的文件?

问题2:如果使用同一个bucket更好,如何为static文件夹定义公共策略,而不是源代码等其他文件夹?

【问题讨论】:

【参考方案1】:

最好使用单独的存储桶,这样您就可以锁定包含私有文件的存储桶。您可能希望为包含静态文件的存储桶启用静态网站托管,而这不是您希望在还包含私有文件的存储桶上启用的功能。

额外费用为 0,因此没有理由不将它们分开。

【讨论】:

以上是关于使用 AWS Elastic Beanstalk 进行部署时,是不是应该将静态文件存储在单独的 S3 中?的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk 上禁止使用 Django 403

AWS Elastic Beanstalk

使用 AWS CodeBuild 和 EB CLI 部署到 AWS Elastic Beanstalk

Elastic Beanstalk (AWS) 的休眠配置

如何使用 Elastic beanstalk 和 Dockerrun.aws.json 正确部署到 AWS?

AWS 和 Elastic Beanstalk