补充实现细节

This commit is contained in:
dragon
2025-01-07 17:30:47 +08:00
parent 0172dceaa8
commit b617127a8b
7 changed files with 80 additions and 12 deletions

View File

@@ -3,6 +3,7 @@ package core
import (
"errors"
"fmt"
"log/slog"
"os"
"strings"
)
@@ -41,6 +42,7 @@ func (p *PageDomain) ParseDomainMeta(domain, path, branch string) (*PageDomainCo
rel := &PageDomainContent{}
if !strings.HasSuffix(domain, "."+p.baseDomain) {
slog.Debug("Page Domain does not end with ."+p.baseDomain, "domain", domain)
return nil, os.ErrNotExist
}

View File

@@ -57,21 +57,21 @@ func NewPageServer(backend core.Backend, options ServerOptions) *Server {
}
func (s *Server) ServeHTTP(writer http.ResponseWriter, request *http.Request) {
meta, err := s.meta.ParseDomainMeta(request.Method, request.RequestURI, request.URL.Query().Get("branch"))
meta, err := s.meta.ParseDomainMeta(request.Host, request.RequestURI, request.URL.Query().Get("branch"))
if err != nil {
if errors.Is(err, os.ErrNotExist) {
s.writeError(writer, err)
} else {
s.writeNotfoundError(writer, request.RequestURI)
} else {
s.writeError(writer, err)
}
return
}
result, err := s.reader.Open(meta.Owner, meta.Repo, meta.CommitID, meta.Path)
if err != nil {
if errors.Is(err, os.ErrNotExist) {
s.writeError(writer, err)
} else {
s.writeNotfoundError(writer, request.RequestURI)
} else {
s.writeError(writer, err)
}
return
}

View File

@@ -27,6 +27,7 @@ type Cache interface {
var ErrCacheOutOfMemory = errors.New("内容无法被缓存,超过最大限定值")
// TODO: 优化锁结构
// 复杂场景请使用其他缓存服务
type CacheMemory struct {
l sync.RWMutex