mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-09 23:17:21 +08:00
feat: sync appstore use proxy (#8525)
This commit is contained in:
parent
f94a04b067
commit
043bfc8b45
4 changed files with 43 additions and 2 deletions
|
@ -834,9 +834,10 @@ func getAppFromRepo(downloadPath string) error {
|
||||||
global.LOG.Infof("[AppStore] download file from %s", downloadUrl)
|
global.LOG.Infof("[AppStore] download file from %s", downloadUrl)
|
||||||
fileOp := files.NewFileOp()
|
fileOp := files.NewFileOp()
|
||||||
packagePath := filepath.Join(global.Dir.ResourceDir, filepath.Base(downloadUrl))
|
packagePath := filepath.Join(global.Dir.ResourceDir, filepath.Base(downloadUrl))
|
||||||
if err := fileOp.DownloadFile(downloadUrl, packagePath); err != nil {
|
if err := files.DownloadFileWithProxy(downloadUrl, packagePath); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := fileOp.Decompress(packagePath, global.Dir.ResourceDir, files.SdkZip, ""); err != nil {
|
if err := fileOp.Decompress(packagePath, global.Dir.ResourceDir, files.SdkZip, ""); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,10 @@ package files
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"github.com/1Panel-dev/1Panel/agent/constant"
|
||||||
|
"github.com/1Panel-dev/1Panel/agent/utils/req_helper"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
@ -167,3 +170,22 @@ func IsEmptyDir(dir string) bool {
|
||||||
_, err = f.Readdirnames(1)
|
_, err = f.Readdirnames(1)
|
||||||
return err == io.EOF
|
return err == io.EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func DownloadFileWithProxy(url, dst string) error {
|
||||||
|
_, resp, err := req_helper.HandleRequest(url, http.MethodGet, constant.TimeOut5m)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
out, err := os.Create(dst)
|
||||||
|
if err != nil {
|
||||||
|
return fmt.Errorf("create download file [%s] error, err %s", dst, err.Error())
|
||||||
|
}
|
||||||
|
defer out.Close()
|
||||||
|
|
||||||
|
reader := bytes.NewReader(resp)
|
||||||
|
if _, err = io.Copy(out, reader); err != nil {
|
||||||
|
return fmt.Errorf("save download file [%s] error, err %s", dst, err.Error())
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"errors"
|
"errors"
|
||||||
|
"github.com/1Panel-dev/1Panel/agent/utils/xpack"
|
||||||
"io"
|
"io"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
@ -52,7 +53,7 @@ func HandleRequest(url, method string, timeout int) (int, []byte, error) {
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
|
||||||
transport := loadRequestTransport()
|
transport := xpack.LoadRequestTransport()
|
||||||
client := http.Client{Timeout: time.Duration(timeout) * time.Second, Transport: transport}
|
client := http.Client{Timeout: time.Duration(timeout) * time.Second, Transport: transport}
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
|
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
|
|
|
@ -3,8 +3,12 @@
|
||||||
package xpack
|
package xpack
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"crypto/tls"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
"time"
|
||||||
|
|
||||||
"github.com/1Panel-dev/1Panel/agent/app/dto"
|
"github.com/1Panel-dev/1Panel/agent/app/dto"
|
||||||
"github.com/1Panel-dev/1Panel/agent/app/model"
|
"github.com/1Panel-dev/1Panel/agent/app/model"
|
||||||
|
@ -64,3 +68,16 @@ func GetAlert(alertBase dto.AlertBase) uint {
|
||||||
func PushAlert(pushAlert dto.PushAlert) error {
|
func PushAlert(pushAlert dto.PushAlert) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func LoadRequestTransport() *http.Transport {
|
||||||
|
return &http.Transport{
|
||||||
|
TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
|
||||||
|
DialContext: (&net.Dialer{
|
||||||
|
Timeout: 60 * time.Second,
|
||||||
|
KeepAlive: 60 * time.Second,
|
||||||
|
}).DialContext,
|
||||||
|
TLSHandshakeTimeout: 5 * time.Second,
|
||||||
|
ResponseHeaderTimeout: 10 * time.Second,
|
||||||
|
IdleConnTimeout: 15 * time.Second,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue