参考QQ群-Javascript高级爬虫-作者自建的Q群,欢迎加入!项目地址-建议克隆后构建服务。作者搭建服务-随时关闭,不要用力过大!概述可以部署在您自己的服务器上的小型服务。它可以自动刷新jsdelivrCDN缓存,帮助你更高效地(bai)使用(bai)Github的存储空间和jsdelivrCDN的带宽流量。原则在中国的土地上。由于众所周知的原因,github的访问速度非常慢,有时甚至完全中断,这让我们无法充分利用github提供的优质存储。幸运的是,有了jsdelivr,我们可以免费为所有github仓库做CDN,即使在中国,我们也可以以非常快的速度访问它们!不过jsdelivr还有一个小问题,就是缓存不能及时刷新。github仓库更新后,会在24小时内刷新缓存。一般CDN将提供强制刷新/清除机制。但是为了防止滥用,jsdelivr没有开放这个API。据说需要写邮件给jsdelivr说明原因才能打开。好在还有个可以爬的窗口,可以实现类似强制刷新的效果,就是github仓库更新后,新建一个release,然后使用https://cdn.jsdelivr.net/gh/user/repo@tag/path/to/resource方法请求资源,其中tag是release的名称。本项目基于这样的机制:监听Github的Webhook,当收到仓库的push事件时,立即调用GithubAPI自动创建新的release。外部应用在引用仓库资源时,可以使用一个固定的URL指向这个服务。该服务解析URL,将其映射到添加了最新发布版本的CDN地址,并自动重定向。在这个服务中,入库和发布之间有一个内存缓存,即使没有配置Webhook,也可以在10分钟内刷新。强烈建议您克隆此存储库并将其本地部署在您自己的服务器上。少量使用可以直接使用这个地址:http://gh.??qbot.fun/。这是作者自己的服务器。如发现服务不可用,请QQ联系17219193。以下步骤以该地址为例。添加Token到Github账户:在Github任意页面,依次点击:右上角头像->设置->开发者设置->个人访问令牌点击生成新令牌在Notes中输入任意名称,在Selectscopes中确保allrepo和它的子项都完成选中它,然后点击GenerateToken记住生成的token,一个40位的十六进制字符串。重要提示:此令牌仅在本次显示。如果不记得了,就只能删掉重建了。调用如下API添加Github账户名和对应的Token:http://gh.??qbot.fun/addToken?user=Github账户名&token=上一步本项目获取的Token需要使用该Token调用Github刷新发布的API。为Github仓库创建Webhook:在Github仓库页面,点击:Settings->Webhooks点击Addwebhook页面:PayloadURL填写http://gh.??qbot.fun/webhook,Contenttype选择application/json;其他保持默认,点击添加webhook,添加成功后会立即推送到Webhook地址,在下方的RecentDeliveries中可以看到最新的推送日志;点击右边的三个按钮点击按钮可以看到推送的请求和响应日志。正常的响应主体应该是ok或nocommit。至此,仓库中的任意资源都可以访问了!仓库中任意一个资源地址都可以正常使用,映射如下:https://github.com/user/repo/path/to/resource->http://gh.??qbot.fun/user/repo/path/to/resource仓库中的任何增、改、删等,使用该地址访问资源都会实时刷新!注意:该地址返回302重定向,会重定向到jsdelivr上对应资源的最新release版本的url,即https://cdn.jsdelivr.net/gh/user/repo@release/path/to的先访问/resource会创建release,jsdelivr也需要回源,会比较慢,以后会很快。也可以在客户端组装资源URL,而不是服务端提供的跳转机制,速度更快,推荐。使用此解决方案!访问http://gh.??qbot.fun/user/repo/会返回最新版本的标签。客户端可以缓存这个tag,自己组装最终的资源地址,即:https://cdn.jsdelivr.net/gh/user/repo@release/path/to/resourceits感谢Github无私提供免费存储空间,感谢jsdelivr无私提供免费带宽流量!不要过于频繁的向资源仓库推送更新,导致release刷新过于频繁,会让jsdelivr不堪重负,甚至最后关闭这个免费服务!作者提供的服务器是腾讯学生机,1M带宽,比较尴尬,只做测试或者少量使用。强烈建议大家部署在自己的服务器本地!从国内访问GithubAPI很不稳定,所以这个项目用了一些奶。如果可以部署到海外服务器,可以删除部分使用代理的代码
