无法使用CLI时如何通过浏览器下载S3内超过10GB的大文件
S3大文件浏览器下载失败解决方案
核心触发原因是浏览器默认对大文件下载的超时、分片支持限制,以及S3端默认配置未适配10GB以上单文件的网页端下载场景,可按以下优先级操作:
一、浏览器端调整(无需管理员权限,优先操作)
- 开启断点续传支持:Chrome/Edge在地址栏输入
chrome://flags/#enable-download-resumption,将选项设置为Enabled,避免网络波动导致的下载中断;Firefox访问about:config,搜索network.http.connection-timeout,将数值调整为1800(单位秒,即30分钟)以上,适配大文件长耗时下载需求。 - 临时关闭大文件安全扫描:Chrome/Edge访问
chrome://settings/security,临时将安全保护级别调整为标准保护,关闭「下载时扫描有害软件」选项,避免超大文件扫描触发内存溢出报错,下载完成后改回原有配置即可。 - 禁用第三方下载扩展:部分下载管理类扩展会强制接管浏览器下载逻辑,对10GB以上大文件的分片支持存在兼容问题,下载前临时禁用所有非官方下载类扩展即可。
二、S3端配置调整(需存储桶管理员权限操作)
- 调整CORS配置,添加分片下载相关的头权限,示例配置如下:
<CORSRule> <AllowedOrigin>*</AllowedOrigin> <!-- 可替换为实际允许访问的域名 --> <AllowedMethod>GET</AllowedMethod> <AllowedHeader>Range</AllowedHeader> <ExposeHeader>Content-Range</ExposeHeader> <ExposeHeader>Content-Length</ExposeHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> </CORSRule>
- 延长预签名URL有效期:如果通过预签名URL下载,需将URL有效期设置为大于预计下载时长的数值,避免下载中途URL过期报错。
- 可选开启S3传输加速:跨区域下载场景下开启该功能可降低丢包率,提升大文件下载稳定性。
三、无权限修改配置的临时解决方案
如果没有权限调整上述两端配置,可通过分片下载手动合并的方式完成下载:
- 按下F12打开浏览器开发者工具,切换到「网络」面板,触发文件下载后找到对应S3文件的GET请求
- 右键该请求选择「复制为cURL(bash)」,在命令中添加请求头
-H "Range: bytes=0-5368709119",执行命令先下载前5GB分片 - 再次修改请求头为
-H "Range: bytes=5368709120-",执行命令下载剩余部分 - 下载完成后,Windows系统执行
copy /b 分片1文件名 + 分片2文件名 完整文件名,macOS/Linux系统执行cat 分片1文件名 分片2文件名 > 完整文件名完成分片合并即可。
内容的提问来源于stack exchange,提问作者Andrew
相关产品推荐
相关产品推荐

