Open robberphex opened 4 years ago
如果没有rsync的话,镜像站同步比较困难,因为没办法人力去一个个版本下载,无论是人力还是服务器资源还是程序都不太好实现,最好的还是直接有用来镜像的那种地址。
另外就是现在特殊时期,学校不允许提前返校,但是防火墙应该是限制只能校内ssh服务器,我不知道 @paulzhn 能不能处理……
如果没有rsync的话,镜像站同步比较困难,因为没办法人力去一个个版本下载,无论是人力还是服务器资源还是程序都不太好实现,最好的还是直接有用来镜像的那种地址。
另外就是现在特殊时期,学校不允许提前返校,但是防火墙应该是限制只能校内ssh服务器,我不知道 @paulzhn 能不能处理……
只能运行rsync吗?写一个shell脚本请求github的api也可以下载的。
@AlynxZhou 应该问题不大,简单粗暴curl/wget其实就行...
不是说只能运行rsync,而是说其他镜像都是用rsync(除了pypi),这样方便用mirror工具统一管理,如果单独做一种处理就需要单独处理,而且肯定不是只同步一次,需要crontab或者timer,还有这种下载不好做增量更新,rsync则直接增量更新。
而且对于mirror这种大量流量的应用,rsync的性能比一个一个http下载好。我觉得要是官方提供统一的rsync,最好就使用rsync同步。
Robert LU notifications@github.com 于2020年3月4日周三 下午5:01写道:
如果没有rsync的话,镜像站同步比较困难,因为没办法人力去一个个版本下载,无论是人力还是服务器资源还是程序都不太好实现,最好的还是直接有用来镜像的那种地址。
另外就是现在特殊时期,学校不允许提前返校,但是防火墙应该是限制只能校内ssh服务器,我不知道 @paulzhn https://github.com/paulzhn 能不能处理……
只能运行rsync吗?写一个shell脚本请求github的api也可以下载的。
— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/paulzhn/bjtu-mirror-issues/issues/9?email_source=notifications&email_token=ACANVRZGU7I5OV2UTXE2EBLRFYKFVA5CNFSM4LA7PBJ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOENW5XEQ#issuecomment-594402194, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACANVR5ODMLE4IEQLIIWHLTRFYKFVANCNFSM4LA7PBJQ .
-- Alynx Zhou A Coder & Dreamer
Intern in SUSE Beijing *Student of *Beijing Jiaotong University School of Computer and Information Technology
@AlynxZhou 应该问题不大,简单粗暴curl/wget其实就行...
实现很好实现,但是你得考虑你后续维护,如果单独给这玩意搞一个很容易就忘了,不维护的话就没什么存在意义了又……你要考虑维护团队(大概)就你自己的情况
@paulzhn @AlynxZhou 有没有镜像Github仓库的轮子啊,也许可以用GitHub api造一个出来 其实有个julia仓库的mirror(也是放在GitHub上)已经在搞了,但是镜像站访问GitHub的速度也还是十分感人,也许我的梯子弄好了之后能有足够的流量给镜像站折腾(
@AlynxZhou 现在其实两个人在搞 @chestnutprog 轮子指啥
@paulzhn @AlynxZhou 有没有镜像Github仓库的轮子啊,也许可以用GitHub api造一个出来
这你要问 mirror 的作者 @ideal 了,我不知道学长工作之余有没有时间搞一下这个……或者我们研究一下。
而且我觉得这种抓 github api 的行为不管是对我们的服务器还是 github 的服务器都不太友好,可能会有 timeout 等等的限制吧。实现起来应该挺难,不如先找找有没有rsync(
@paulzhn @AlynxZhou 有没有镜像Github仓库的轮子啊,也许可以用GitHub api造一个出来
这你要问 mirror 的作者 @ideal 了,我不知道学长工作之余有没有时间搞一下这个……或者我们研究一下。
而且我觉得这种抓 github api 的行为不管是对我们的服务器还是 github 的服务器都不太友好,可能会有 timeout 等等的限制吧。实现起来应该挺难,不如先找找有没有rsync(
可以看一下https://github.com/sunoru/julia-mirror ,我试的时候就很容易吃GitHub的限流,而且感觉对断点的处理很迷,每次同步完都是一堆报错。现在也确定不了镜像的完整性,不太敢往出放
github API一小时最多5000次请求(https://developer.github.com/v3/#rate-limiting)
其他的话,可能就是网络原因导致的下载失败了。
@paulzhn @AlynxZhou 有没有镜像Github仓库的轮子啊,也许可以用GitHub api造一个出来
这你要问 mirror 的作者 @ideal 了,我不知道学长工作之余有没有时间搞一下这个……或者我们研究一下。 而且我觉得这种抓 github api 的行为不管是对我们的服务器还是 github 的服务器都不太友好,可能会有 timeout 等等的限制吧。实现起来应该挺难,不如先找找有没有rsync(
可以看一下https://github.com/sunoru/julia-mirror ,我试的时候就很容易吃GitHub的限流,而且感觉对断点的处理很迷,每次同步完都是一堆报错。现在也确定不了镜像的完整性,不太敢往出放
我觉得有点影响力和规模的项目都应该搞自己的下载服务器,这样你好我好大家好……
@RobberPhex 谢谢建议,已经纳入待办事项了
我仔细看了下,发现通过github的release是获取不到全部最新的安装包的。必须得通过adoptopenjdk的API来。我已经更新了获取方式。 抱歉之前提供了错误的信息。
下载脚本:
# 参数为版本,比如8,11等
function downloadRelease() {
TMP_DIR=$(mktemp -d)
DIR="adoptopenjdk$i"
curl -s "https://api.adoptopenjdk.net/v2/latestAssets/releases/openjdk$1" | \
jq -r '.[]| [.binary_link, .binary_name]| @tsv' | \
while IFS=$'\t' read -r link filename; do
echo $filename $link
curl -sL "$link" -o "$TMP_DIR/$filename"
done
mv "$DIR" "$DIR.toremove"
mv "$TMP_DIR" "$DIR"
rm -rf "$DIR.toremove"
}
for i in 8 11 13;
do
downloadRelease $i
done
请介绍新镜像
上游源(官方镜像)的地址 官网:https://adoptopenjdk.net/ 二进制存储库:
官方有API,指向每个版本的下载链接。 比如jdk11 https://api.adoptopenjdk.net/v2/latestAssets/releases/openjdk11
该项目的介绍 AdoptOpenJdk是一个社区版的 OpenJDK 二进制包,Java11后,Oracle修改了Oracle Jdk的授权,商业用途免费使用jdk只能转向社区,目前AdoptOpenJDK是比较有影响力的发行版。
为什么希望添加该镜像
AdoptOpenJdk托管在GitHub release上,国内访问速度十分感人,并且因为链接重定向至S3,很难下载。