Skip to main content

À propos des URL anonymes

Si vous chargez une image ou une vidéo sur GitHub, l’URL de l’image ou de la vidéo est modifiée pour éviter que vos informations puissent être suivies.

Pour héberger vos images, GitHub utilise le projet open source Camo. Camo génère un proxy d’URL anonyme pour chaque fichier, qui masque les détails de votre navigateur et les informations associées auprès des autres utilisateurs. L’URL commence par https://<subdomain>.githubusercontent.com/, avec différents sous-domaines en fonction de la façon dont vous avez chargé l’image.

Les vidéos reçoivent également des URL anonymes avec le même format que les URL d’image, mais ne sont pas traitées via Camo. Cela est dû au fait que GitHub ne prend pas en charge les vidéos hébergées en externe, de sorte que l’URL anonyme est un lien vers la vidéo chargée hébergée par GitHub.

Toute personne qui reçoit votre URL anonyme, directement ou indirectement, peut afficher votre image ou votre vidéo. Pour garder les fichiers de médias sensibles privés, limitez-les à un réseau privé ou à un serveur qui nécessite une authentification au lieu d’utiliser Camo.

Résolution des problèmes liés à Camo

Dans de rares circonstances, les images traitées via Camo peuvent ne pas apparaître sur GitHub. Voici quelques étapes à suivre pour déterminer où se trouve le problème.

Les utilisateurs Windows devront utiliser Git PowerShell (qui est installé avec GitHub Desktop) ou télécharger curl pour Windows.

Une image n’apparaît pas

Si une image s’affiche dans votre navigateur, mais pas sur GitHub, vous pouvez essayer de la demander localement.

  1. Ouvrez TerminalTerminalGit Bash.
  2. Demandez les en-têtes d’image en utilisant 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. Vérifiez la valeur Content-Type. Dans ce cas, il s’agit de image/x-png.
  4. Vérifiez le type de contenu par rapport à la liste des types pris en charge par Camo.

Si votre type de contenu n’est pas pris en charge par Camo, vous pouvez essayer plusieurs actions :

  • Si vous possédez le serveur qui héberge l’image, modifiez-le afin qu’il retourne un type de contenu correct pour les images.
  • Si vous utilisez un service externe pour héberger des images, contactez le support technique de ce service.
  • Effectuez une demande de tirage sur Camo pour ajouter votre type de contenu à la liste.

Une image qui a changé récemment n’est pas mise à jour

Si vous avez modifié une image récemment et qu’elle s’affiche dans votre navigateur, mais pas GitHub, vous pouvez essayer de réinitialiser le cache de l’image.

  1. Ouvrez TerminalTerminalGit Bash.
  2. Demandez les en-têtes d’image en utilisant 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)

Vérifiez la valeur Cache-Control. Dans cet exemple, il n’y a pas de Cache-Control. Dans ce cas :

  • Si vous possédez le serveur qui héberge l’image, modifiez-le afin qu’il retourne un Cache-Control de no-cache pour les images.

  • Si vous utilisez un service externe pour héberger des images, contactez le support technique de ce service.

    Si Cache-Control est défini sur no-cache, contactez GitHub Support ou visitez le GitHub Community discussions.

Suppression d’une image du cache de Camo

La purge du cache force chaque utilisateur de GitHub à re-demander l’image. Vous devez donc l’utiliser de manière éparse et uniquement en cas de non-fonctionnement des étapes ci-dessus.

  1. Ouvrez TerminalTerminalGit Bash.
  2. Videz l’image avec curl -X PURGE sur l’URL Camo.
    $ curl -X PURGE https://camo.githubusercontent.com/4d04abe0044d94fefcf9af2133223....
    > {"status": "ok", "id": "216-8675309-1008701"}

Affichage d’images sur des réseaux privés

Si une image est servie à partir d’un réseau privé ou d’un serveur qui nécessite une authentification, elle ne peut pas être consultée par GitHub. En fait, aucun utilisateur ne peut l’ouvrir sans demander de se connecter au serveur.

Pour résoudre ce problème, déplacez l’image vers un service disponible publiquement.

Pour aller plus loin