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

S3静态站点上传文件后自动下载index.html问题求助

解决S3静态站点自动下载index.html的问题

检查文件元数据细节

  • 确认Content-Type确实是text/html:哪怕手动上传时设置了,S3偶尔可能自动覆盖这个属性。去S3控制台查看index.html的元数据,确保没被错误设成application/octet-stream这类会触发下载的MIME类型。
  • 排查隐藏的Content-Disposition:有些工具或脚本会悄悄添加这个属性,哪怕你没手动设置。在文件元数据里找有没有Content-Disposition: attachment的条目,有的话直接删除。

验证静态站点托管配置

  • 确认存储桶的静态站点托管设置里,索引文档确实填的是index.html,别写错字。
  • 检查有没有误开「重定向所有请求到另一个主机名」的选项,开了这个会导致访问异常。

检查CloudFront缓存(如果用了CDN)

  • 如果域名通过CloudFront分发,大概率是缓存了旧的响应头:手动创建缓存失效,清除index.html的缓存;同时检查CloudFront的缓存策略,确保没强制设置Content-Disposition或修改Content-Type。

boto3脚本的正确写法

用put_object时,明确指定MIME类型并显式设置内联展示,避免触发下载:

import boto3

s3 = boto3.client('s3')
with open('index.html', 'rb') as f:
    s3.put_object(
        Bucket='你的存储桶名称',
        Key='index.html',
        Body=f,
        ContentType='text/html',
        ContentDisposition='inline'
    )

测试基础访问路径

  • 直接通过S3的静态站点托管域名(比如xxx.s3-website-xxx.amazonaws.com)访问,排除域名解析或自定义域名的配置问题。
  • 检查存储桶的桶策略和对象权限,确保公开读取权限确实生效,没被新的IAM策略或ACL覆盖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 14:40:49