Para hospedar imagens, o GitHub usa o Camo do projeto de código aberto. Camo gera um proxy de URL anônimo para cada imagem que oculta os detalhes do seu navegador e informações relacionadas de outros usuários. A URL começa https://<subdomain>.githubusercontent.com/
, com subdomínios diferentes dependendo de como você fez o upload da imagem.
Qualquer pessoa que recebe sua URL anônima de imagem, direta ou indiretamente, pode exibir a imagem. Para manter a privacidade de imagens confidenciais, restrinja-as a uma rede privada ou a um servidor que exija autenticação em vez de usar o Camo.
Solucionar problemas com o Camo
As imagens que são processadas por meio do Camo raramente não aparecem no GitHub. Veja a seguir algumas etapas que podem ser seguidas para determinar onde está o problema.
Os usuários do Windows precisam usar o Git Powershell (que é instalado com o GitHub Desktop) ou baixar um curl para Windows.
Uma imagem não está sendo exibida
Se uma imagem estiver sendo exibida no navegador, mas não no GitHub, você pode tentar solicitar a imagem localmente.
- Abra TerminalTerminalGit Bash.
- Solicite os headers da imagem usando
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
- Verifique o valor de
Content-Type
. Nesse caso, éimage/x-png
. - Verifique o tipo de conteúdo em relação à lista de tipos compatíveis com o Camo.
Se o tipo de conteúdo não for compatível com o Camo, você poderá tentar várias ações:
- Se tiver posse do servidor que está hospedando a imagem, modifique-o para que ele retorne um tipo de conteúdo correto para imagens.
- Se estiver usando um serviço externo para hospedar imagens, entre em contato com o suporte do serviço em questão.
- Faça uma pull request ao Camo a fim de adicionar seu tipo de conteúdo à lista.
Uma imagem que foi alterada recentemente não está atualizando
Se você alterou uma imagem recentemente e ela está sendo exibida no navegador, mas não no GitHub, tente redefinir o cache da imagem.
- Abra TerminalTerminalGit Bash.
- Solicite os headers da imagem usando
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)
Verifique o valor de Cache-Control
. Neste exemplo, não há Cache-Contro
. Nesse caso:
-
Se tiver posse do servidor que está hospedando a imagem, modifique-o para que ele retorne um
Cache-Control
deno-cache
para imagens. -
Se estiver usando um serviço externo para hospedar imagens, entre em contato com o suporte do serviço em questão.
Se
Cache-Control
estiver definido comono-cache
, entre em contato com GitHub Support or GitHub Premium Support ou pesquise no Fórum da Comunidade GitHub.
Remover uma imagem do cache do Camo
A limpeza do cache força os usuários do GitHub a solicitar novamente a imagem. Portanto, você deve usá-la bem moderadamente e somente no caso em que as etapas acima não funcionarem.
- Abra TerminalTerminalGit Bash.
- Limpe a imagem usando
curl-X PURGE
na URL do Camo.$ curl -X PURGE https://camo.githubusercontent.com/4d04abe0044d94fefcf9af2133223.... > {"status": "ok", "id": "216-8675309-1008701"}
Exibir imagens em redes privadas
Se uma imagem estiver sendo fornecida por uma rede privada ou um servidor que exige autenticação, ela não poderá ser exibida pelo GitHub. Na verdade, a imagem não pode ser exibida pelos usuários sem que eles façam login no servidor.
Para corrigir isso, mova a imagem para um serviço que esteja disponível publicamente.
Leia mais
- "Retransmitir imagens do usuário" em GitHub Blog