补充实现细节
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ type Cache interface {
|
||||
var ErrCacheOutOfMemory = errors.New("内容无法被缓存,超过最大限定值")
|
||||
|
||||
// TODO: 优化锁结构
|
||||
// 复杂场景请使用其他缓存服务
|
||||
|
||||
type CacheMemory struct {
|
||||
l sync.RWMutex
|
||||
|
||||
Reference in New Issue
Block a user