首页/系统与基础设施/存储速查/S3 请求限流与错误码判读
分布式与对象存储70 条

S3 请求限流与错误码判读

对象存储错误需先区分可恢复与不可恢复:限流与临时不可用要用带抖动的指数退避重试并主动降并发,鉴权与参数错误重试无效;无上限的重试会形成风暴,把限流放大成故障。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

错误码怎么读

对象存储的错误响应是一份结构化文档,里面既有简短的错误码也有请求标识。区分「请求本身有问题」与「服务端让你慢一点」是排障的第一分岔:前者重试多少次都不会成功,后者只要退避得当就能恢复。相反,把限流当成程序缺陷去改代码,或把参数错误当成偶发故障去疯狂重试,都会把问题放大。

基本信息

响应形式HTTP 状态码 + 结构化错误文档
关键字段错误码、错误信息、请求标识、主机标识
客户端错误鉴权失败、对象不存在、参数非法等,重试无效
服务端错误限流与临时不可用,应按退避策略重试

典型场景与处理

  • 请求速率过高:服务端明确要求降速,必须退避并加抖动
  • 前缀热点:同一前缀的请求过于集中,需要打散写入分布
  • 鉴权失败:签名或权限问题,重试无意义,要核对密钥与策略
  • 对象不存在:注意版本化场景下可能是删除标记造成
  • 请求超时:先判断客户端超时设置与业务实际耗时是否匹配

重试策略要点

重试策略要点
# 只对可恢复错误重试:限流与临时不可用
# 指数退避:每次失败后等待时间翻倍,并加入随机抖动
# 上限保护:设定最大重试次数与最长等待,避免线程长期占用
# 幂等前提:写入同名对象可重试;分片上传需按上传标识恢复
# 全局限速:并发过高时应主动降速,而不是把重试当并发补偿
# 记录请求标识:便于与服务端记录对齐,判断是限流还是真实故障

常见错误对照

类别典型含义处理方向
限流类请求速率超过服务端可承受范围退避重试并降低并发,必要时打散前缀
鉴权类签名不匹配或权限不足修正密钥、签名范围与策略授权
不存在类键名写错或已被删除核对键名编码与版本状态
临时不可用类服务端短暂异常适度重试并观察是否成规模发生
参数类请求格式或取值不合法按接口文档修正请求,不要重试

工程实践建议

  • 重试策略在客户端库与业务代码里统一,避免多层各自重试造成叠加放大
  • 把限流指标纳入监控并设置告警,限流长期发生说明容量或设计需要调整
  • 批量任务要有节流阀,按服务端反馈动态调整速率
  • 对不可恢复错误快速失败并记录,避免无效重试掩盖真实问题
  • 保留请求标识,跨客户端与服务端排查时这是最有效的关联线索
限流是保护机制而非故障:它通常意味着当前请求模式超出了服务端的分区处理能力,单纯换账号或换端点并不能解决。
重试必须有上限与退避,无上限的紧密重试会在高负载时形成重试风暴,把可自愈的限流放大成全站不可用。

易错点

  • 对鉴权失败与参数错误也做重试,日志被无效请求淹没、故障被掩盖
  • 多层重试叠加(网关、SDK、业务各重试一次)导致请求量成倍放大
  • 重试不加随机抖动,所有客户端同一时刻恢复造成二次冲击
  • 看到限流就无限提高并发,最终把可恢复的降速变成服务不可用

数据来源与参考

  • Amazon S3 官方文档:错误响应与错误码列表
  • AWS 架构最佳实践:指数退避与抖动重试

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/storage/s3-throttling-error-codes.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​​​‌​‌‌​​‌‌‌​‌‌​​‌​‌​​‌​‌‌‌‌​‌‌‌​​‌‌​​‌‌​​‌‌​​‌​‌‌​‌​‌‌‌​‌​​​‌‌​‌​​​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​‌​​​‌‌‌​‌​​​‌‌​‌‌​​​‌‌​‌​​‌​‌‌​‌‌‌​​‌‌​​‌‌‌​​‌​‌‌​‌​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌​​‌​​‌‌​‌‌‌‌​‌‌‌​​‌​​​‌​‌‌​‌​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​