"net/http"
"strings"
"sync"
+ "time"
"github.com/minio/minio-go/v7"
"github.com/minio/minio-go/v7/pkg/credentials"
return
}
+ if ims := r.Header.Get("if-modified-since"); ims != "" {
+ imsTime, err := time.Parse(http.TimeFormat, ims)
+ if err == nil && (imsTime.Equal(stat.LastModified) || imsTime.After(stat.LastModified)) {
+ w.WriteHeader(http.StatusNotModified)
+ return
+ }
+ }
+ w.Header().Set("last-modified", stat.LastModified.Format(http.TimeFormat))
+
+ if stat.ChecksumSHA1 != "" {
+ if inm := r.Header.Get("if-none-match"); inm != "" {
+ if inm == stat.ChecksumSHA1 {
+ w.WriteHeader(http.StatusNotModified)
+ return
+ }
+ }
+
+ w.Header().Set("ETag", stat.ChecksumSHA1)
+ }
+
var seek int64
var size = stat.Size
if rh != nil {