This commit refactors the logging mechanism across the application by replacing direct logger calls with a centralized logging approach using the `common` package. Key changes include: - Replaced instances of `logger.SysLog` and `logger.FatalLog` with `common.SysLog` and `common.FatalLog` for consistent logging practices. - Updated resource initialization error handling to utilize the new logging structure, enhancing maintainability and readability. - Minor adjustments to improve code clarity and organization throughout various modules. This change aims to streamline logging and improve the overall architecture of the codebase.
58 lines
1.5 KiB
Go
58 lines
1.5 KiB
Go
package service
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
"one-api/common"
|
|
"one-api/setting"
|
|
"strings"
|
|
)
|
|
|
|
// WorkerRequest Worker请求的数据结构
|
|
type WorkerRequest struct {
|
|
URL string `json:"url"`
|
|
Key string `json:"key"`
|
|
Method string `json:"method,omitempty"`
|
|
Headers map[string]string `json:"headers,omitempty"`
|
|
Body json.RawMessage `json:"body,omitempty"`
|
|
}
|
|
|
|
// DoWorkerRequest 通过Worker发送请求
|
|
func DoWorkerRequest(req *WorkerRequest) (*http.Response, error) {
|
|
if !setting.EnableWorker() {
|
|
return nil, fmt.Errorf("worker not enabled")
|
|
}
|
|
if !setting.WorkerAllowHttpImageRequestEnabled && !strings.HasPrefix(req.URL, "https") {
|
|
return nil, fmt.Errorf("only support https url")
|
|
}
|
|
|
|
workerUrl := setting.WorkerUrl
|
|
if !strings.HasSuffix(workerUrl, "/") {
|
|
workerUrl += "/"
|
|
}
|
|
|
|
// 序列化worker请求数据
|
|
workerPayload, err := json.Marshal(req)
|
|
if err != nil {
|
|
return nil, fmt.Errorf("failed to marshal worker payload: %v", err)
|
|
}
|
|
|
|
return http.Post(workerUrl, "application/json", bytes.NewBuffer(workerPayload))
|
|
}
|
|
|
|
func DoDownloadRequest(originUrl string) (resp *http.Response, err error) {
|
|
if setting.EnableWorker() {
|
|
common.SysLog(fmt.Sprintf("downloading file from worker: %s", originUrl))
|
|
req := &WorkerRequest{
|
|
URL: originUrl,
|
|
Key: setting.WorkerValidKey,
|
|
}
|
|
return DoWorkerRequest(req)
|
|
} else {
|
|
common.SysLog(fmt.Sprintf("downloading from origin: %s", originUrl))
|
|
return http.Get(originUrl)
|
|
}
|
|
}
|