mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-16 14:40:12 +01:00
🎨 Clean code Improve network image download to the local
This commit is contained in:
parent
f535a13372
commit
082e4a9ca9
2 changed files with 12 additions and 43 deletions
|
|
@ -100,8 +100,7 @@ func NetAssets2LocalAssets(rootID string, onlyImg bool, originalURL string) (err
|
|||
}
|
||||
}
|
||||
|
||||
browserClient := util.CreateCustomReqClient().
|
||||
EnableInsecureSkipVerify() // 添加了自定义TLS指纹, 可以完成对于CDN的资源下载
|
||||
browserClient := util.NewCustomReqClient() // 自定义了 TLS 指纹,增加下载成功率
|
||||
|
||||
forbiddenCount := 0
|
||||
destNodes := getRemoteAssetsLinkDestsInTree(tree, onlyImg)
|
||||
|
|
|
|||
|
|
@ -18,18 +18,26 @@ package util
|
|||
|
||||
import (
|
||||
"crypto/tls"
|
||||
"net"
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/imroc/req/v3"
|
||||
"github.com/siyuan-note/httpclient"
|
||||
)
|
||||
|
||||
// NewCustomReqClient 创建自定义 req 客户端
|
||||
func NewCustomReqClient() *req.Client {
|
||||
client := req.C().
|
||||
SetTLSClientConfig(createCustomTLSConfig()).
|
||||
SetUserAgent(UserAgent).
|
||||
SetTimeout(30 * time.Second).
|
||||
SetProxy(httpclient.ProxyFromEnvironment)
|
||||
return client
|
||||
}
|
||||
|
||||
// createCustomTLSConfig 创建自定义 TLS 配置
|
||||
func createCustomTLSConfig() *tls.Config {
|
||||
return &tls.Config{
|
||||
InsecureSkipVerify: false,
|
||||
InsecureSkipVerify: true,
|
||||
MinVersion: tls.VersionTLS12,
|
||||
MaxVersion: tls.VersionTLS13,
|
||||
|
||||
|
|
@ -53,41 +61,3 @@ func createCustomTLSConfig() *tls.Config {
|
|||
},
|
||||
}
|
||||
}
|
||||
|
||||
// CreateCustomHTTPClient 创建自定义 HTTP 客户端
|
||||
func CreateCustomHTTPClient() *http.Client {
|
||||
dialer := &net.Dialer{
|
||||
Timeout: 30 * time.Second,
|
||||
KeepAlive: 30 * time.Second,
|
||||
}
|
||||
|
||||
transport := &http.Transport{
|
||||
TLSClientConfig: createCustomTLSConfig(),
|
||||
DialContext: dialer.DialContext,
|
||||
MaxIdleConns: 100,
|
||||
MaxIdleConnsPerHost: 10,
|
||||
IdleConnTimeout: 90 * time.Second,
|
||||
TLSHandshakeTimeout: 10 * time.Second,
|
||||
ResponseHeaderTimeout: 10 * time.Second,
|
||||
ForceAttemptHTTP2: false,
|
||||
TLSNextProto: make(map[string]func(authority string, c *tls.Conn) http.RoundTripper),
|
||||
}
|
||||
|
||||
return &http.Client{
|
||||
Transport: transport,
|
||||
Timeout: 60 * time.Second,
|
||||
}
|
||||
}
|
||||
|
||||
// CreateCustomReqClient 创建自定义 req 客户端
|
||||
func CreateCustomReqClient() *req.Client {
|
||||
client := req.C()
|
||||
|
||||
client.SetTLSClientConfig(createCustomTLSConfig())
|
||||
|
||||
client.SetUserAgent(UserAgent).
|
||||
SetTimeout(30 * time.Second).
|
||||
SetProxy(httpclient.ProxyFromEnvironment)
|
||||
|
||||
return client
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue