1 points par GN⁺ 2025-05-30 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Compiler Explorer a fait évoluer sa méthode de stockage depuis 2012 pour que les liens partagés restent valides longtemps, mais la fermeture de goo.gl rend urgente la préservation des anciens liens godbolt.org/g/abc123
  • Au départ, tout l’état du compilateur était stocké dans l’URL ; en 2014, le service de raccourcissement d’URL de Google a été ajouté ; puis en 2016, après l’interdiction des URL raccourcies par Stack Overflow, un lien de contournement godbolt.org/g/abc123 a été mis en place
  • À partir de 2018, les limites de longueur des URL étant devenues plus problématiques, le service a basculé vers une solution maison stockant l’état sous forme de documents JSON sur S3, avec DynamoDB pour gérer la correspondance entre hash court et chemin complet
  • Lorsque Google mettra fin aux liens goo.gl en août 2025, il deviendra difficile de résoudre les anciens liens basés sur goo.gl ; environ 12 000 liens g trouvés sur le web public et dans les logs, ainsi que leurs cibles de redirection, sont donc en cours d’intégration dans une base de données interne
  • Les utilisateurs qui possèdent encore d’anciens liens Compiler Explorer peuvent augmenter leurs chances de préservation en les visitant dès maintenant ; pour les connaissances partagées qui doivent durer, il est plus sûr de posséder directement l’infrastructure critique

Évolution du stockage des liens dans Compiler Explorer

  • En 2012, Compiler Explorer stockait tout son état dans l’URL
  • Cette méthode d’encodage de l’état complet du compilateur dans l’URL produisait des liens trop longs et difficiles à manipuler ; en mars 2014, la prise en charge de goo.gl, le raccourcisseur d’URL de Google, a été ajoutée
  • À l’époque, les liens courts avaient la forme goo.gl/abc123 ; en cliquant dessus, on était redirigé vers l’URL complète de Compiler Explorer, qui décodait ensuite l’état contenu dans l’URL

Le lien de contournement après l’interdiction de Stack Overflow

  • En 2016, Stack Overflow a interdit les services de raccourcissement d’URL, au motif qu’ils pouvaient masquer la véritable destination
  • Cette décision a aussi affecté les liens Compiler Explorer, et à l’époque l’objectif n’était pas encore de stocker directement les données utilisateur
  • La solution de contournement consistait à continuer d’utiliser goo.gl tout en montrant à l’utilisateur un lien sous la forme godbolt.org/g/abc123
    • abc123 était l’identifiant unique de goo.gl
    • un accès à /g/abc123 redirigeait vers goo.gl/abc123
    • goo.gl redirigeait ensuite vers l’URL complète de godbolt.org contenant l’état
  • Par la suite, l’API Google a été utilisée pour éviter cette chaîne de redirections à plusieurs étapes

Passage à un stockage maison en 2018

  • En 2018, les limites de longueur des URL sont devenues un problème encore plus important, alors même que les données dans l’URL étaient déjà compressées
  • Compiler Explorer a alors adopté une architecture où l’état est stocké directement
    • les entrées sont hachées
    • l’état est stocké sous forme de document JSON sur S3
    • une forme courte du hash est exposée via des URL godbolt.org/z/hashbit
    • DynamoDB stocke la correspondance entre hash court et chemin complet
  • Le système vérifie aussi si le hash court contient des mots offensants
    • si c’est le cas, des informations supplémentaires sont volontairement ajoutées au document pour produire un autre hash
    • ce comportement a conduit au bug #1297

Le problème de préservation causé par la fin de goo.gl

  • Compiler Explorer prend toujours en charge les liens godbolt.org/g/abc123
  • Google a indiqué que les anciens liens continueraient à rediriger vers leur destination prévue, mais goo.gl est passé en lecture seule il y a plusieurs années et sa fermeture définitive est prévue pour août 2025
  • Après cette date, il ne sera plus possible de résoudre les liens basés sur goo.gl
  • Les liens goo.gl eux-mêmes ne peuvent pas être récupérés côté Compiler Explorer, mais les liens godbolt.org/g/abc123 peuvent être préservés dans une base de données interne

Collecte des anciens liens et base de données interne

  • Depuis quelques jours, d’anciens liens et les URL de leurs cibles de redirection sont collectés depuis plusieurs sources publiques
  • Environ 12 000 liens ont été trouvés jusqu’à présent
    • API de recherche web de Google
    • API de GitHub
    • logs web internes
    • dump des données Stack Overflow sur archive.org
    • liste des pages web archivées par Archive.org
  • En interne, un changement a déjà été effectué pour privilégier la base de données maison à goo.gl
  • Les nouveaux liens g encore absents de la base sont également surveillés
  • En local, une base sqlite est utilisée, tandis que la production repose sur Dynamo

Ce que les utilisateurs peuvent faire

  • Si vous avez conservé d’anciens liens godbolt.org/g/abc123, il est utile de visiter chacun d’eux dès maintenant
  • Lorsqu’un lien est visité, il apparaît dans les logs web et peut ensuite être ajouté à la base de données
  • Sinon, il se peut qu’il ne fonctionne plus après août 2025
  • Cet exemple montre le risque qu’il y a à dépendre d’un service tiers pour une infrastructure importante
  • Pour tenir la promesse d’« URL éternelles », il faut posséder soi-même l’ensemble de la pile

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.