避免从raw.githubusercontent.com获取缓存内容

5

我注意到使用curl获取GitHub内容时有这样一种格式:

https://raw.githubusercontent.com/${org}/${repo}/${branch}/path/to/file

有时候它会返回缓存/陈旧的内容。例如,使用以下操作序列:
  1. curl https://raw.githubusercontent.com/${org}/${repo}/${branch}/path/to/file
  2. 将新的提交推送到该分支
  3. curl https://raw.githubusercontent.com/${org}/${repo}/${branch}/path/to/file
第3步将返回与第1步相同的内容,并且不反映新的提交。
如何避免获取陈旧版本?
我注意到在Github WebUI中,它将一个令牌添加到url中,例如: ?token=AABCIPALAGOZX5R,这可能避免了获取缓存内容。 这个令牌的性质是什么?我该如何模拟这个过程?在url后面加上?token=$(date +%s)行得通吗?
此外,我正在寻找一种方法,可以避免使用提交哈希在url中获取旧内容,因为这需要进行更多更改。但是,如果这是唯一的方法,那么我将采用这种方式。
2个回答

2

?token=$(date +%s) 对我有用 :)


-1

GitHub缓存这些数据,因为如果频繁请求文件,则每次服务请求都需要向后端服务发送请求,这比提供缓存副本更昂贵。使用CDN可以提高性能和速度。您不能绕过它。

URL中看到的令牌是为已登录用户发放的临时令牌。您不能使用随机令牌,因为那不会通过身份验证。

如果您需要特定提交中该文件的版本,则需要显式指定该提交。但是,请注意,您不应使用某种大规模自动化进程来绕过缓存。例如,您不应尝试始终获取要分发的程序或运行的服务的最新版本文件。如果必要,您可以自己提供数据,并使用CDN。这样,您可以自行决定何时需要清除缓存,从而获得良好的性能和最新数据。

如果您仍然运行此类进程,则可能会导致停机或超载,并且可能会暂停或阻止您的存储库或帐户。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接