Skip to content

Commit ab77997

Browse files
committed
feat(serverHandler/content): use ServeContent directly
`http.ServeContent` could handle HEAD method properly.
1 parent 4da62d9 commit ab77997

File tree

1 file changed

+1
-22
lines changed

1 file changed

+1
-22
lines changed

src/serverHandler/content.go

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package serverHandler
22

33
import (
4-
"mjpclab.dev/ghfs/src/util"
54
"net/http"
65
"net/url"
7-
"strconv"
8-
"time"
96
)
107

118
func (h *aliasHandler) content(w http.ResponseWriter, r *http.Request, data *responseData) {
@@ -19,23 +16,5 @@ func (h *aliasHandler) content(w http.ResponseWriter, r *http.Request, data *res
1916
item := data.Item
2017
file := data.File
2118

22-
if NeedResponseBody(r.Method) {
23-
http.ServeContent(w, r, item.Name(), item.ModTime(), file)
24-
return
25-
}
26-
27-
header.Set("Accept-Ranges", "bytes")
28-
if lacksHeader(header, "Content-Type") {
29-
ctype, err := util.GetContentType(item.Name(), file)
30-
if err == nil {
31-
header.Set("Content-Type", ctype)
32-
} else if data.Status == http.StatusOK {
33-
data.Status = http.StatusInternalServerError
34-
}
35-
}
36-
header.Set("Content-Length", strconv.FormatInt(item.Size(), 10))
37-
header.Set("Date", time.Now().UTC().Format(http.TimeFormat))
38-
header.Set("Last-Modified", item.ModTime().UTC().Format(http.TimeFormat))
39-
40-
w.WriteHeader(data.Status)
19+
http.ServeContent(w, r, item.Name(), item.ModTime(), file)
4120
}

0 commit comments

Comments
 (0)