- 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/abc123a é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
gtrouvé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/abc123abc123était l’identifiant unique de goo.gl- un accès à
/g/abc123redirigeait versgoo.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
- 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.gleux-mêmes ne peuvent pas être récupérés côté Compiler Explorer, mais les liensgodbolt.org/g/abc123peuvent ê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
gencore 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.