Class RangeUtils
java.lang.Object
io.leandev.appfuse.file.RangeUtils
HTTP Range 請求處理工具
支援 RFC 7233 定義的 Range 請求格式,用於實現斷點續傳與部分內容下載。
支援的格式
bytes=0-1000- 從 0 到 1000 bytesbytes=1000-- 從 1000 到檔案結尾bytes=-500- 最後 500 bytes
使用範例
Optional<ByteRange> range = RangeUtils.parseRange("bytes=0-1000", fileSize);
if (range.isPresent()) {
// 回應 206 Partial Content
ByteRange r = range.get();
inputStream.skip(r.start());
// 讀取 r.length() bytes
}
- See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisRangeRequest(String rangeHeader) 檢查是否為有效的 Range 請求static Optional<RangeUtils.ByteRange> parseRange(String rangeHeader, long fileSize) 解析 HTTP Range header
-
Method Details
-
parseRange
解析 HTTP Range header
根據 RFC 7233 規範解析 Range header,支援以下格式:
bytes=0-1000- 絕對範圍bytes=1000-- 從指定位置到結尾bytes=-500- 最後 N bytes(suffix range)
- Parameters:
rangeHeader- HTTP Range header 值(如 "bytes=0-1000")fileSize- 檔案總大小- Returns:
- 解析後的範圍,若格式無效則回傳 empty
-
isRangeRequest
檢查是否為有效的 Range 請求- Parameters:
rangeHeader- HTTP Range header 值- Returns:
- 是否為有效的 Range 請求格式
-