大文件上传最佳实践是什么
大文件上传的关键是分片加断点续传:把文件切成多个分片并行上传,最后合并;网络中断时已完成的分片会被记录,重试只需续传剩余部分。官方命令行工具与 SDK 通常默认启用这套机制。网络路径的选择同样重要:同地域访问应使用内网 Endpoint,跨地域传输应借助存储复制能力而不是从公网重复上传;上传完成后还要做一致性校验,防止文件静默损坏。
基本信息
| 分片上传 | 切成多个分片并行上传,最终合并为完整对象 |
|---|---|
| 断点续传 | 记录已完成分片,中断后仅续传剩余部分 |
| 网络路径 | 同地域使用内网 Endpoint;跨地域用复制能力而不是公网直传 |
| 一致性校验 | 上传后核对校验值,防止文件静默损坏 |
| 权限要求 | 需要对象写入与分片相关接口的权限 |
典型使用场景
- 上传数据库备份、数据集等体积较大的文件
- 弱网或跨境环境下需要可恢复的上传过程
- 批量同步大量文件到对象存储,希望一条命令完成
- 应用侧通过 SDK 上传用户提交的大文件,避免请求超时
- 离线数据导入前先上传到对象存储,再由计算任务读取处理
大文件上传(自动分片)
大文件上传(自动分片)
ossutil cp ./dataset.tar oss://my-bucket/data/dataset.tar # 自动分片与续传
ossutil stat oss://my-bucket/data/dataset.tar # 查看对象大小与修改时间
# 上传中断后重新执行同一条命令即可续传,不要清空临时分片目录
# 跨地域传输优先使用存储复制能力,而不是从公网重复上传影响因素与建议
| 因素 | 影响 | 建议 |
|---|---|---|
| 分片大小 | 分片过小会增加请求数与额外开销 | 先用工具默认值,特殊网络再调整 |
| 并发数 | 并发过高会争抢带宽并触发限流 | 按可用带宽与目标端限制设置 |
| 网络路径 | 公网波动导致频繁中断与重传 | 同地域走内网 Endpoint |
| 校验方式 | 不做校验时可能静默损坏 | 上传后核对校验值 |
| 临时分片残留 | 未合并的分片长期占用存储 | 定期排查并清理未完成的分片 |
上传中断后重新执行同一条命令即可续传已完成的分片:不要清空临时分片目录,否则之前的进度全部作废,大文件要重新传一遍。
未完成上传产生的临时分片同样占用存储并计费:长期失败的同步任务会积累出大量残留分片,需要定期排查清理,否则存储费用缓慢增长却找不到来源。