本文介紹OSS返回416錯誤的原因和解決方案。
InvalidRange
The requested range cannot be satisfied
- 問題原因:通過HTTP Range請求擷取大檔案的部分內容時,選取了無效的範圍。
- 解決方案:當使用
x-oss-multi-range-behavior: multi-range要求標頭時,GetObject請求支援在Range要求標頭中指定多個位元組範圍,最多支援50個位元組範圍;如果指定的位元組範圍個數超過50個,會返回MultiRangeFailed錯誤,具體的錯誤資訊和解決方案請參見0016-00000110。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位元組的內容。