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

加载AWS S3项目文件时出现403 Forbidden错误

解决S3部署Vite应用时GLB模型加载403 Forbidden问题

针对你遇到的模型加载403错误,按以下步骤排查解决:

  • 检查文件权限与路径匹配

    1. 进入S3控制台,找到ts1桶里的model1.glb,查看对象ACL。如果文件是私有权限,即便桶策略公开,也会返回403。手动将文件ACL设为「公有读」(给Everyone分配读取权限)后重试。
    2. 确认请求URL里的文件路径、大小写完全匹配S3中的实际对象:S3对路径大小写敏感,比如Model1.glb和model1.glb会被视为不同文件。
  • 修正Vite构建的资源路径
    在vite.config.js中指定base参数,避免构建后资源路径错误:

    export default defineConfig({
      base: './', // 若S3桶有访问前缀,可设为 '/ts1/'
      // 其他配置项
    })
    

    重新构建dist文件夹并上传,然后通过浏览器开发者工具的Network面板,确认model1.glb的请求URL是正确的S3对象地址。

  • 验证S3桶配置

    1. 核对桶策略中的桶名ts1是否正确,Resource字段arn:aws:s3:::ts1/*要覆盖所有需要访问的对象路径。
    2. 确保桶的「阻止公共访问」已关闭(不要勾选“阻止所有公共访问”),且已开启静态网站托管,索引文档设置为index.html。
    3. 如果用了CloudFront分发,检查Origin Access Control(OAC)是否允许CloudFront访问S3对象,同时在CloudFront行为规则中允许GLB资源的GET请求,清除缓存后再测试。
  • 调整文件上传方式
    用AWS CLI上传dist文件夹时,必须加上--acl public-read参数,确保文件默认权限为公有读:

    aws s3 sync dist/ s3://ts1/ --acl public-read
    

    避免上传时默认私有ACL导致的权限冲突。

  • 用Policy Simulator排查权限冲突
    打开AWS IAM控制台的Policy Simulator工具,模拟对arn:aws:s3:::ts1/model1.glb的s3:GetObject操作,检查是否被允许,以此排查是否存在其他IAM策略或桶策略的冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 20:01:33