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