Просмотр исходного кода

repo/download: add Last-Modified response header (#5827)

* repo/download: Add Last-Modified response header

ref: https://github.com/gogs/gogs/issues/5811

* Update download.go


Co-authored-by: Unknwon <[email protected]>
Frode Aannevik 5 лет назад
Родитель
Сommit
1619317c3b
1 измененных файлов с 9 добавлено и 1 удалено
  1. 9 1
      routes/repo/download.go

+ 9 - 1
routes/repo/download.go

@@ -5,7 +5,9 @@
 package repo
 
 import (
+	"fmt"
 	"io"
+	"net/http"
 	"path"
 
 	"github.com/gogs/git-module"
@@ -22,6 +24,12 @@ func ServeData(c *context.Context, name string, reader io.Reader) error {
 		buf = buf[:n]
 	}
 
+	commit, err := c.Repo.Commit.GetCommitByPath(c.Repo.TreePath)
+	if err != nil {
+		return fmt.Errorf("GetCommitByPath: %v", err)
+	}
+	c.Resp.Header().Set("Last-Modified", commit.Committer.When.Format(http.TimeFormat))
+
 	if !tool.IsTextFile(buf) {
 		if !tool.IsImageFile(buf) {
 			c.Resp.Header().Set("Content-Disposition", "attachment; filename=\""+name+"\"")
@@ -31,7 +39,7 @@ func ServeData(c *context.Context, name string, reader io.Reader) error {
 		c.Resp.Header().Set("Content-Type", "text/plain; charset=utf-8")
 	}
 	c.Resp.Write(buf)
-	_, err := io.Copy(c.Resp, reader)
+	_, err = io.Copy(c.Resp, reader)
 	return err
 }