本文介绍OSS返回416错误的原因和解决方案。

InvalidRange

The requested range cannot be satisfied

  • 问题原因:通过HTTP Range请求获取大文件的部分内容时,选取了无效的范围。
  • 解决方案:OSS不支持多Range参数,即不支持指定多个范围。ByteRange指请求资源的范围,单位为Byte(字节),ByteRange有效区间在0至object size - 1的范围内。假设文件的总大小为2000字节,指定不同的ByteRange,其下载行为说明如下:
    • Range: bytes=0-499:从文件开始部分到指定字节的内容,即下载1~500字节的内容。
    • Range: bytes=-500:最后500字节的内容,即下载1501~2000字节的内容。
    • Range: bytes=500-:从第500字节开始到文件结束部分的内容,即下载501~2000字节的内容。
    • Range: bytes=0-:从第一个字节开始到最后一个字节的内容,即下载完整的文件1~2000字节的内容。