Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'internal/serving/disk/reader.go')
-rw-r--r--internal/serving/disk/reader.go11
1 files changed, 9 insertions, 2 deletions
diff --git a/internal/serving/disk/reader.go b/internal/serving/disk/reader.go
index 350d036b..a0c0ed0d 100644
--- a/internal/serving/disk/reader.go
+++ b/internal/serving/disk/reader.go
@@ -194,10 +194,17 @@ func (reader *Reader) serveFile(ctx context.Context, w http.ResponseWriter, r *h
return err
}
+ w.Header().Set("Content-Type", contentType)
+
reader.fileSizeMetric.Observe(float64(fi.Size()))
- w.Header().Set("Content-Type", contentType)
- http.ServeContent(w, r, origPath, fi.ModTime(), file)
+ // Support SeekableFile if available
+ if rs, ok := file.(vfs.SeekableFile); ok {
+ http.ServeContent(w, r, origPath, fi.ModTime(), rs)
+ } else {
+ w.Header().Set("Content-Length", strconv.FormatInt(fi.Size(), 10))
+ io.Copy(w, file)
+ }
return nil
}