mirror of
https://codeberg.org/Codeberg/pages-server.git
synced 2025-05-16 18:17:12 +02:00
Move to []byte for caching and make it compile
This commit is contained in:
parent
5b6eecc75f
commit
c4181d1206
11 changed files with 63 additions and 43 deletions
|
@ -5,6 +5,8 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
"net/http"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/rs/zerolog/log"
|
||||
|
@ -41,6 +43,24 @@ type FileResponse struct {
|
|||
Body []byte
|
||||
}
|
||||
|
||||
func FileResponseFromMetadataString(metadataString string) FileResponse {
|
||||
parts := strings.Split(metadataString, "\n")
|
||||
res := FileResponse{
|
||||
Exists: parts[0] == "true",
|
||||
IsSymlink: parts[1] == "true",
|
||||
ETag: parts[2],
|
||||
MimeType: parts[3],
|
||||
}
|
||||
return res
|
||||
}
|
||||
|
||||
func (f FileResponse) MetadataAsString() string {
|
||||
return strconv.FormatBool(f.Exists) + "\n" +
|
||||
strconv.FormatBool(f.IsSymlink) + "\n" +
|
||||
f.ETag + "\n" +
|
||||
f.MimeType + "\n"
|
||||
}
|
||||
|
||||
func (f FileResponse) IsEmpty() bool {
|
||||
return len(f.Body) == 0
|
||||
}
|
||||
|
@ -102,9 +122,13 @@ func (t *writeCacheReader) Close() error {
|
|||
doWrite = false
|
||||
}
|
||||
if doWrite {
|
||||
err := t.cache.Set(t.cacheKey, fc, fileCacheTimeout)
|
||||
err := t.cache.Set(t.cacheKey+"|Metadata", []byte(fc.MetadataAsString()), fileCacheTimeout)
|
||||
if err != nil {
|
||||
log.Trace().Err(err).Msgf("[cache] writer for %q has returned an error", t.cacheKey)
|
||||
log.Trace().Err(err).Msgf("[cache] writer for %q has returned an error", t.cacheKey+"|Metadata")
|
||||
}
|
||||
err = t.cache.Set(t.cacheKey+"|Body", fc.Body, fileCacheTimeout)
|
||||
if err != nil {
|
||||
log.Trace().Err(err).Msgf("[cache] writer for %q has returned an error", t.cacheKey+"|Body")
|
||||
}
|
||||
}
|
||||
log.Trace().Msgf("cacheReader for %q saved=%t closed", t.cacheKey, doWrite)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue