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

如何检查S3文件上传是否处于进行中?

关于S3上传状态查询的解决方案

核心结论

针对你的场景,能否查询上传状态取决于使用的上传方式:

1. 普通单文件PUT上传(小文件常用)

S3对单文件PUT上传是原子性处理的:

  • 只有当文件完全上传成功后,才会在桶中可见
  • 若上传中断/失败,S3不会留下任何该文件的上传痕迹,也不会存储“已启动上传但失败”的元数据
  • 这种情况下,无法直接通过S3接口判断该文件是否曾经启动过上传或正在上传

2. 分段上传(Multipart Upload,大文件常用)

如果你的客户端使用分段上传(包括通过预签名URL发起的分段上传),S3会保留未完成的分段上传元数据,此时可以查询状态:

  • 调用ListMultipartUploads接口,指定目标前缀,即可列出该前缀下所有未完成的分段上传任务
  • 每个未完成任务会包含文件键、上传ID、创建时间等信息,据此可以判断对应键的上传是否正在进行,或是已中断但未清理
  • 注意:未完成的分段上传会占用存储空间,建议配置S3生命周期规则,自动清理超过指定时长的未完成分段上传

结合你的架构的落地建议

  1. 若当前使用单文件PUT上传:
    • 可以让服务器结合自身存储的临时上传元数据+S3文件存在性来推断状态:
      • 如果服务器记录了该键的上传请求,且S3中存在对应文件 → 上传完成
      • 如果服务器记录了请求,但S3中无对应文件 → 上传失败(客户端中断/出错)
      • 无法直接判断是否正在上传
  2. 若切换为分段上传:
    • 服务器可以封装ListMultipartUploads的查询逻辑,提供给第二个客户端:
      • 查到对应键的未完成分段上传 → 上传中或已中断
      • 未查到且S3中有文件 → 上传完成
      • 未查到且S3中无文件 → 上传未启动或已失败并清理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:25:04