GitHub如何显示防盗链的图片(已加白名单)?

我使用了七牛云存储空间,作为我的图床,并开启了防盗链设置;由于我想在GitHub和Gitee上显示我的图床的图片,为此我加了白名单gitee.com和github.com,在Gitee上能正常显示,但是在GitHub不行;

我上传了另一个图床的图片(没开启防盗链),然后能显示出来图片,我看了下图片的地址是https://camo.githubuserconten... 开头的,因此我在七牛云也加了camo.githubusercontent.com这个白名单,然而修改成功后,还是没能在GitHub显示出来图片;

而Gitee里,打开图片的地址是我的图床的地址,因此可以看得到图片;

GitHub项目地址:https://github.com/Peter-JXL/...
Gitee项目地址:https://gitee.com/peterjxl/Ti...

我现在认为是GitHub会将图片放到其他地方(例如其他域名),而我又没将其放到白名单,导致访问失败,请问有大佬知道要怎么解决吗?

--以下是2023-2-21更新
经评论区老哥唯一丶 提醒,怀疑是空refer的原因,
因日志生成有延迟,我刚拿到七牛云的CDN日志分析了下,好像确实是空refer导致的原因……Gitee和GitHub的日志对比:

116.21.31.192 MISS 104 [20/Feb/2023:21:51:50 +0800] "GET https://image.peterjxl.com/TimeRecorder/TimeRecorder-summary.jpg HTTP/2.0" 200 43824 "https://gitee.com/peterjxl/TimeRecorder" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"

140.82.115.62 MISS 1 [20/Feb/2023:21:04:54 +0800] "GET https://image.peterjxl.com/TimeRecorder/TimeRecorder-label.jpg HTTP/1.1" 403 351 "-" "github-camo (325d2008)"
阅读 2.1k
1 个回答

看了一下,应该是 Github 为了避免在自家页面载入不可信的资源,将外链图片进行了转换。

这个转换,有可能是 GitHub 直接通过后端转发到你的 OSS 服务器去的(反向代理),每次都都这样去获取。

也可能是 GitHub 通过后端访问你的 OSS 地址,把图片下载到了 GitHub 的服务器进行缓存。

这俩种情况,都是因为 GitHub 是通过后台类似于 CURL 的形式去访问你 OSS 上的图片,所以这里可能不一定携带了 referer 所以你那边放行是没有用的。


Github 建议你把图片可以直接上传到仓库中,然后使用相对路径的方式去引用,这样更加合适。

如果你一定要那样做,你可以看一下 OSS 的日志,如果没有提供的话,你可能要自己写一个小的脚本来进行测试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Microsoft
子站问答
访问
宣传栏