本文介紹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字節的內容。