mirror of
https://github.com/WJQSERVER-STUDIO/ghproxy.git
synced 2026-02-03 08:11:11 +08:00
optimize cache & remove panic change to fallback error json
This commit is contained in:
parent
b7ce929db8
commit
82943428d3
1 changed files with 7 additions and 2 deletions
|
|
@ -137,7 +137,7 @@ func (d ErrorPageData) ToCacheKey() string {
|
||||||
err := enc.Encode(d)
|
err := enc.Encode(d)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logError("Failed to gob encode ErrorPageData for cache key: %v", err)
|
logError("Failed to gob encode ErrorPageData for cache key: %v", err)
|
||||||
panic(fmt.Errorf("failed to gob encode ErrorPageData: %w", err))
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
hasher := sha256.New()
|
hasher := sha256.New()
|
||||||
|
|
@ -298,6 +298,11 @@ func ErrorPage(c *app.RequestContext, errInfo *GHProxyErrors) {
|
||||||
pageDataStruct := ErrPageUnwarper(errInfo)
|
pageDataStruct := ErrPageUnwarper(errInfo)
|
||||||
// 使用 ErrorPageData 生成一个唯一的 SHA256 缓存键
|
// 使用 ErrorPageData 生成一个唯一的 SHA256 缓存键
|
||||||
cacheKey := pageDataStruct.ToCacheKey()
|
cacheKey := pageDataStruct.ToCacheKey()
|
||||||
|
if cacheKey == "" {
|
||||||
|
c.JSON(errInfo.StatusCode, map[string]string{"error": errInfo.ErrorMessage})
|
||||||
|
logWarning("Failed to generate cache key for error page: %v", errInfo)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var pageData []byte
|
var pageData []byte
|
||||||
var err error
|
var err error
|
||||||
|
|
@ -311,7 +316,7 @@ func ErrorPage(c *app.RequestContext, errInfo *GHProxyErrors) {
|
||||||
pageData, err = htmlTemplateRender(pageDataStruct)
|
pageData, err = htmlTemplateRender(pageDataStruct)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
c.JSON(errInfo.StatusCode, map[string]string{"error": errInfo.ErrorMessage})
|
c.JSON(errInfo.StatusCode, map[string]string{"error": errInfo.ErrorMessage})
|
||||||
logDebug("Failed to render error page for status %d (Key: %s): %v", errInfo.StatusCode, cacheKey, err)
|
logWarning("Failed to render error page for status %d (Key: %s): %v", errInfo.StatusCode, cacheKey, err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue