Para hospedar suas imagens, o GitHub usa o projeto de código aberto Camo. A Camo gera um proxy de URL anônimo para cada arquivo que oculta os detalhes do seu navegador e informações relacionadas de outros usuários. No GitHub.com, a URL começa com https://<subdomain>.githubusercontent.com/, com subdomínios diferentes, dependendo de como você carregou a imagem.
Os vídeos também recebem URLs anônimas com o mesmo formato que as URLs da imagem, mas não são processados através da Camo. Isto ocorre porque GitHub não é compatível vídeos hospedados externamente. Portanto, a URL anônima é um link para o vídeo enviado hospedado por GitHub.
Qualquer pessoa que receber a sua URL anônima, direta ou indiretamente, poderá visualizar a sua imagem ou vídeo. Para manter arquivos de mídia sensíveis privados, restrinja-os a uma rede privada ou a um servidor que exige autenticação em vez de usar a 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.
Dica
Usuários do Windows precisarão usar o Git PowerShell (que está instalado juntamente com GitHub Desktop) ou baixar curl para Windows.
Uma imagem não está sendo exibida
Se uma imagem estiver sendo exibida no seu navegador mas não em GitHub, você poderá tentar solicitá-la localmente.
-
Abra TerminalTerminalGit Bash.
-
Solicite os cabeçalhos de imagem usando
curl.$ curl -I https://www.my-server.com/images/some-image.png > HTTP/2 200 > 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, useimage/x-png. -
Verifique esse tipo de conteúdo em relação à lista de tipos com suporte do 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 modificada recentemente não está sendo atualizada.
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 cabeçalhos de imagem usando
curl.$ curl -I https://www.my-server.com/images/some-image.png > HTTP/2 200 > 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á nenhum Cache-Control. Nesse caso:
- Se você é o proprietário do servidor que está hospedando a imagem, modifique-a para que ela retorne um
Cache-Controligual ano-cachepara as 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-Controlestiver definido como no-cache, entre em contato com o conosco por meio do Portal de suporte do GitHub ou pesquise o Discussões da Comunidade do 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 PURGEna 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.
Leitura adicional
- Como criar um proxy para imagens do usuário no the GitHub Blog