Home Comments Thread
New Thread

1 Comment

chuxinyuan chuxinyuan 2026-05-07 03:20:32

https://github.com/hunshcn/gh-proxy 这个项目对国内用户下载 GitHub 上的文件有奇效,供参考。

yihui yihui 2026-05-07 14:06:26

这个大文件问题真要解决也并不难,你说的这个项目使用 Cloudflare Worker,我当然也可以部署,只是 Worker 有每月调用次数限制(虽然对区区这么几个文件来说应该够用了)。另一个办法是把大文件部署到 Netlify 或 Vercel 等其它平台上(限制在 100M),但如此这般的结果会是如果我想把这个项目转交给别人的话,别人就又要多一步配置了。我觉得这几个大包下载的频率应该会非常低,所以暂且先不管了。国内真需要的人可以通过其它镜像安装,或梯取之。

chuxinyuan chuxinyuan 2026-05-07 22:38:03

hunshcn/gh-proxy#116 这里有别人部署好的,我们只需要在程序里先做一个判断看看这些站点连接是否正常,在能访问的站点里,比如有 10 个,每次随机取出 1 个,这样就会分摊每一个 Worker 的压力。

chuxinyuan chuxinyuan 2026-05-07 23:27:05
proxy_urls = c(
  "https://gh.noki.icu/",
  "https://gh-proxy.com/",
  "https://ghfast.top/",
  "https://gh.sixyin.com/",
  "https://gh.404cafe.fun/",
  "https://tvv.tw/"
)

target_file = "https://github.com/hadley/mastering-shiny/raw/main/neiss/products.tsv"
download_urls = paste0(proxy_urls, target_file)

for (i in seq_along(download_urls)) {
  output_file = paste0(i, ".tsv")
  tryCatch({
    cat(sprintf("正在下载第 %d 个文件:%s\n", i, output_file))
    download.file(
      url = download_urls[i],
      destfile = output_file,
      quiet = FALSE,
      mode = "wb", 
      timeout = 30
    )
    cat(sprintf("✅ 第 %d 个文件下载完成\n\n", i))
  }, error = function(e) {
    cat(sprintf("❌ 第 %d 个文件下载失败:%s\n\n", i, e$message))
  })
}

cat("=== 所有下载任务执行完毕 ===")

hunshcn/gh-proxy#116 评论里所有的站点我都测试过了,目前上面 6 个站点是用的。

Sign in to join the discussion

Sign in with GitHub