为托管您的图像,GitHub 使用 开源项目 Camo。 Camo 为每个映像生成匿名 URL 代理,以隐藏您的浏览器详细信息和来自其他用户的相关信息。 URL 以 https:///<subdomain>.githubusercontent.com/
开头,并且根据您如何上传映像而有不同的子域。
直接或间接收到您的匿名化图像 URL 的任何人都可查看您的图像。 为对敏感图像保密,将它们限于私人网络或需要身份验证的服务器,而不使用 Camo。
Camo 问题故障排除
在偶尔的情况下,通过 Camo 处理的图像可能不会出现在 GitHub 上。 下面是可用于确定问题位置的一些步骤。
Windows 用户需要使用 Git Powershell(随 GitHub Desktop 一起安装)或下载 curl for Windows。
图像不显示
如果图像显示于浏览器中,但未显示在 GitHub 上,您可以尝试本地请求该图像。
- 打开 Terminal(终端)Terminal(终端)Git Bash。
- 使用
curl
请求图像标头。$ curl -I https://www.my-server.com/images/some-image.png > HTTP/1.1 200 OK > Date: Fri, 06 Jun 2014 07:27:43 GMT > Expires: Sun, 06 Jul 2014 07:27:43 GMT > Content-Type: image/x-png > Server: Google Frontend > Content-Length: 6507
- 检查
Content-Type
的值。 本例中为image/x-png
。 - 根据 Camo 支持的类型列表检查内容类型。
如果您的内容类型不受 Camo 支持,可尝试以下几项操作:
- 如果您拥有托管该图像的服务器,请修改它以让其返回正确内容类型的图像。
- 如果使用外部服务托管图像,请联系该服务的支持。
- 建立对 Camo 的拉取请求以将内容类型添加到列表。
最近更改的图像不更新
如果最近更改了图像并且它显示在浏览器中,但未显示在 GitHub 上,可尝试重置图像缓存。
- 打开 Terminal(终端)Terminal(终端)Git Bash。
- 使用
curl
请求图像标头。$ curl -I https://www.my-server.com/images/some-image.png > HTTP/1.1 200 OK > Expires: Fri, 01 Jan 1984 00:00:00 GMT > Content-Type: image/png > Content-Length: 2339 > Server: Jetty(8.y.z-SNAPSHOT)
检查 Cache-Control
的值。 本例中没有 Cache-Control
。 在这种情况下:
-
如果您拥有托管该图像的服务器,请修改它以让其返回图像的
no-cache
的Cache-Control
。 -
如果使用外部服务托管图像,请联系该服务的支持。
如果
Cache-Control
设置为no-cache
,请联系 GitHub 支持 或 GitHub 高级支持 或搜索 GitHub 社区论坛。
从 Camo 的缓存中删除图像
清除缓存会强制每个 GitHub 用户重新请求图像,因此应非常谨慎地使用此操作,仅在上述步骤无效时才使用。
- 打开 Terminal(终端)Terminal(终端)Git Bash。
- 使用
curl -X PURGE
在 Camo URL 上清除图像。$ curl -X PURGE https://camo.githubusercontent.com/4d04abe0044d94fefcf9af2133223.... > {"status": "ok", "id": "216-8675309-1008701"}
在私人网络上查看图像
如果图像从私人网络或需要身份验证的服务器提供,则无法通过 GitHub 查看。 事实上,未登录服务器的任何用户都无法查看。
要解决此问题,请将图像移至公共的服务。
延伸阅读
- GitHub 博客 上的"代理用户图像"