本文介紹OSS返回416錯誤的原因和解決方案。
InvalidRange
The requested range cannot be satisfied
- 問題原因:通過HTTP Range請求獲取大文件的部分內(nèi)容時,選取了無效的范圍。
- 解決方案:OSS不支持多Range參數(shù),即不支持指定多個范圍。ByteRange指請求資源的范圍,單位為Byte(字節(jié)),ByteRange有效區(qū)間在0至
object size - 1
的范圍內(nèi)。假設文件的總大小為2000字節(jié),指定不同的ByteRange,其下載行為說明如下:Range: bytes=0-499
:從文件開始部分到指定字節(jié)的內(nèi)容,即下載1~500字節(jié)的內(nèi)容。Range: bytes=-500
:最后500字節(jié)的內(nèi)容,即下載1501~2000字節(jié)的內(nèi)容。Range: bytes=500-
:從第500字節(jié)開始到文件結(jié)束部分的內(nèi)容,即下載501~2000字節(jié)的內(nèi)容。Range: bytes=0-
:從第一個字節(jié)開始到最后一個字節(jié)的內(nèi)容,即下載完整的文件1~2000字節(jié)的內(nèi)容。