You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS Elastic Beanstalk部署时是否需单独创建S3存储静态文件?

合理性判断
  • 将静态文件和EB生成的源代码、版本包放在同一个S3存储桶是完全合理的,没有强制要求拆分。二者拆分与否的核心判断依据是你的业务管理需求:
    • 优先选同桶的场景:无特殊隔离要求,希望减少资源管理成本、避免多桶计费冗余
    • 优先选单独开桶的场景:需要为静态文件单独配置CDN、访问日志、生命周期规则,或有合规要求禁止源代码存储桶关联任何公开权限配置
同存储桶仅公开static文件夹的配置方案

该方案通过桶策略优先级高于对象ACL的特性实现,配置完成后无需每次部署后手动修改对象权限,部署时自动覆盖的对象私有权限不会影响静态文件的公开访问:

  1. 首先调整存储桶的公开访问配置:进入S3控制台对应存储桶的「权限」 tab,关闭「阻止所有公开访问」下的4项配置,保存更改
  2. 配置存储桶策略,将以下JSON填入「存储桶策略」编辑框,替换<你的桶名>为实际存储桶名称后保存:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::<你的桶名>/static/*"
        }
    ]
}
  1. 优化Django静态文件上传配置(如果你使用django-storages管理S3静态文件),在settings.py中增加以下配置,避免上传时额外设置无效ACL:
AWS_DEFAULT_ACL = None
AWS_STATIC_URL = f"https://<你的桶名>.s3.<区域>.amazonaws.com/static/"
STATIC_URL = AWS_STATIC_URL
单独开桶的可选配置参考

如果你选择单独创建静态文件存储桶,直接为新桶配置允许所有匿名读的桶策略即可,同时修改上述settings.py中的桶名配置为新存储桶名称即可,配置逻辑更简单,无资源误公开风险。

内容的提问来源于stack exchange,提问作者matiszz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:15:04