MCPcopy Index your code
hub / github.com/53AI/53AIHub / parseRangeHeaderForPreview

Function parseRangeHeaderForPreview

api/controller/file_preview.go:380–420  ·  view source on GitHub ↗

parseRangeHeaderForPreview 解析Range请求头,用于预览功能

(rangeHeader string, fileSize int64)

Source from the content-addressed store, hash-verified

378
379// parseRangeHeaderForPreview 解析Range请求头,用于预览功能
380func parseRangeHeaderForPreview(rangeHeader string, fileSize int64) (int64, int64) {
381 if !strings.HasPrefix(rangeHeader, "bytes=") {
382 return 0, fileSize - 1
383 }
384
385 rangeHeader = rangeHeader[6:] // 移除 "bytes="
386 parts := strings.Split(rangeHeader, "-")
387 if len(parts) != 2 {
388 return 0, fileSize - 1
389 }
390
391 var start, end int64
392 var err error
393
394 if parts[0] == "" {
395 // suffix bytes
396 suffix, err := strconv.ParseInt(parts[1], 10, 64)
397 if err != nil || suffix <= 0 {
398 return 0, fileSize - 1
399 }
400 start = fileSize - suffix
401 end = fileSize - 1
402 } else {
403 start, err = strconv.ParseInt(parts[0], 10, 64)
404 if err != nil || start < 0 {
405 start = 0
406 }
407
408 if parts[1] == "" {
409 // bytes=start-
410 end = fileSize - 1
411 } else {
412 end, err = strconv.ParseInt(parts[1], 10, 64)
413 if err != nil || end >= fileSize {
414 end = fileSize - 1
415 }
416 }
417 }
418
419 return start, end
420}
421
422// GetFileBodyContent godoc
423// @Summary 获取文件版本内容

Callers 2

PreviewRawFileContentFunction · 0.85
serveUploadFilePreviewFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected