Skip to main content

Sobre URLs anônimas

Se você fizer o upload de uma imagem ou vídeo para GitHub, a URL da imagem ou vídeo será modificada para que suas informações não sejam rastreáveis.

Para hospedar imagens, o GitHub usa o Camo do projeto de código aberto. 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. A URL começa https://<subdomain>.githubusercontent.com/, com subdomínios diferentes dependendo de como você fez o upload da 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.

Os usuários do Windows precisam usar o Git PowerShell (que é instalado com o GitHub Desktop) ou fazer o download de um 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.

  1. Abra TerminalTerminalGit Bash.
  2. Solicite os headers da 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
  3. Verifique o valor de Content-Type. Nesse caso, é image/x-png.
  4. 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.

  1. Abra TerminalTerminalGit Bash.
  2. Solicite os headers da 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á Cache-Contro. Nesse caso:

  • Se tiver posse do servidor que está hospedando a imagem, modifique-o para que ele retorne um Cache-Control de no-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 como no-cache, entre em contato com GitHub Support ou pesquise no GitHub Community discussions.

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.

  1. Abra TerminalTerminalGit Bash.
  2. 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