Skip to content

改进中国地区集市包下载 #12026

Closed
@TCOTC

Description

@TCOTC

https://ld246.com/article/1721365124799

逻辑或许跟这个差不多:

如果 githubURL 无法访问或下载速度较慢,则尝试使用 ghproxyURL 来加速访问 GitHub 上的资源

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)
}

相关的函数好像是这个:

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

changed the title [-]改进中国地区集市下载[/-] [+]改进中国地区集市下载和 README 中的图片加载[/+] on Jul 19, 2024
changed the title [-]改进中国地区集市下载和 README 中的图片加载[/-] [+]改进中国地区集市包下载[/+] on Jul 21, 2024
88250

88250 commented on Jul 24, 2024

@88250
Member

链滴数据中心默认就是用的国内七牛云,并且加了 CDN。

TCOTC

TCOTC commented on Jul 24, 2024

@TCOTC
ContributorAuthor

用的国内七牛云,并且加了 CDN

  1. 这部分代码是在哪个地方?
  2. 是连不上链滴/七牛云就不能下载了吗?
88250

88250 commented on Jul 24, 2024

@88250
Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @88250@TCOTC

        Issue actions

          改进中国地区集市包下载 · Issue #12026 · siyuan-note/siyuan