-
-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Closed
Description
https://ld246.com/article/1721365124799
逻辑或许跟这个差不多:
如果 githubURL 无法访问或下载速度较慢,则尝试使用 ghproxyURL 来加速访问 GitHub 上的资源
siyuan/kernel/model/updater.go
Lines 138 to 151 in 687421f
b3logURL := "https://release.b3log.org/siyuan/" + pkg | |
liuyunURL := "https://release.liuyun.io/siyuan/" + pkg | |
githubURL := "https://github.com/siyuan-note/siyuan/releases/download/v" + ver + "/" + pkg | |
ghproxyURL := "https://mirror.ghproxy.com/" + githubURL | |
if util.IsChinaCloud() { | |
downloadPkgURLs = append(downloadPkgURLs, b3logURL) | |
downloadPkgURLs = append(downloadPkgURLs, liuyunURL) | |
downloadPkgURLs = append(downloadPkgURLs, ghproxyURL) | |
downloadPkgURLs = append(downloadPkgURLs, githubURL) | |
} else { | |
downloadPkgURLs = append(downloadPkgURLs, githubURL) | |
downloadPkgURLs = append(downloadPkgURLs, b3logURL) | |
downloadPkgURLs = append(downloadPkgURLs, liuyunURL) | |
} |
相关的函数好像是这个:
siyuan/kernel/bazaar/package.go
Lines 549 to 585 in 687421f
func downloadPackage(repoURLHash string, pushProgress bool, systemID string) (data []byte, err error) { | |
packageLocksLock.Lock() | |
defer packageLocksLock.Unlock() | |
// repoURLHash: https://github.com/88250/Comfortably-Numb@6286912c381ef3f83e455d06ba4d369c498238dc | |
repoURL := repoURLHash[:strings.LastIndex(repoURLHash, "@")] | |
lock, ok := packageLocks[repoURLHash] | |
if !ok { | |
lock = &sync.Mutex{} | |
packageLocks[repoURLHash] = lock | |
} | |
lock.Lock() | |
defer lock.Unlock() | |
repoURLHash = strings.TrimPrefix(repoURLHash, "https://github.com/") | |
u := util.BazaarOSSServer + "/package/" + repoURLHash | |
buf := &bytes.Buffer{} | |
resp, err := httpclient.NewCloudFileRequest2m().SetOutput(buf).SetDownloadCallback(func(info req.DownloadInfo) { | |
if pushProgress { | |
progress := float32(info.DownloadedSize) / float32(info.Response.ContentLength) | |
//logging.LogDebugf("downloading bazaar package [%f]", progress) | |
util.PushDownloadProgress(repoURL, progress) | |
} | |
}).Get(u) | |
if nil != err { | |
logging.LogErrorf("get bazaar package [%s] failed: %s", u, err) | |
return nil, errors.New("get bazaar package failed, please check your network") | |
} | |
if 200 != resp.StatusCode { | |
logging.LogErrorf("get bazaar package [%s] failed: %d", u, resp.StatusCode) | |
return nil, errors.New("get bazaar package failed: " + resp.Status) | |
} | |
data = buf.Bytes() | |
go incPackageDownloads(repoURLHash, systemID) | |
return | |
} |
Activity
[-]改进中国地区集市下载[/-][+]改进中国地区集市下载和 README 中的图片加载[/+][-]改进中国地区集市下载和 README 中的图片加载[/-][+]改进中国地区集市包下载[/+]88250 commentedon Jul 24, 2024
链滴数据中心默认就是用的国内七牛云,并且加了 CDN。
TCOTC commentedon Jul 24, 2024
88250 commentedon Jul 24, 2024