cf_worker.go 798 B

1234567891011121314151617181920212223242526272829
  1. package service
  2. import (
  3. "bytes"
  4. "fmt"
  5. "net/http"
  6. "one-api/common"
  7. "one-api/setting"
  8. "strings"
  9. )
  10. func DoDownloadRequest(originUrl string) (resp *http.Response, err error) {
  11. if setting.EnableWorker() {
  12. common.SysLog(fmt.Sprintf("downloading file from worker: %s", originUrl))
  13. if !strings.HasPrefix(originUrl, "https") {
  14. return nil, fmt.Errorf("only support https url")
  15. }
  16. workerUrl := setting.WorkerUrl
  17. if !strings.HasSuffix(workerUrl, "/") {
  18. workerUrl += "/"
  19. }
  20. // post request to worker
  21. data := []byte(`{"url":"` + originUrl + `","key":"` + setting.WorkerValidKey + `"}`)
  22. return http.Post(setting.WorkerUrl, "application/json", bytes.NewBuffer(data))
  23. } else {
  24. common.SysLog(fmt.Sprintf("downloading from origin: %s", originUrl))
  25. return http.Get(originUrl)
  26. }
  27. }