本文介紹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位元組的內容。