mirror of https://github.com/go-gitea/gitea
Use standard HTTP library to serve files (#24693)
`http.ServeFile/ServeContent` handles `If-xxx`, `Content-Length`, `Range` and `Etag` correctly After this PR, storage files (eg: avatar) could be responded with correct Content-Length.pull/24694/head^2
parent
f745016092
commit
a94a8d0ab1
@ -1,35 +0,0 @@ |
||||
// Copyright 2023 The Gitea Authors. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package httplib |
||||
|
||||
import ( |
||||
"bytes" |
||||
"net/http" |
||||
) |
||||
|
||||
type MockResponseWriter struct { |
||||
header http.Header |
||||
|
||||
StatusCode int |
||||
BodyBuffer bytes.Buffer |
||||
} |
||||
|
||||
func (m *MockResponseWriter) Header() http.Header { |
||||
return m.header |
||||
} |
||||
|
||||
func (m *MockResponseWriter) Write(bytes []byte) (int, error) { |
||||
if m.StatusCode == 0 { |
||||
m.StatusCode = http.StatusOK |
||||
} |
||||
return m.BodyBuffer.Write(bytes) |
||||
} |
||||
|
||||
func (m *MockResponseWriter) WriteHeader(statusCode int) { |
||||
m.StatusCode = statusCode |
||||
} |
||||
|
||||
func NewMockResponseWriter() *MockResponseWriter { |
||||
return &MockResponseWriter{header: http.Header{}} |
||||
} |
Loading…
Reference in new issue