Comment obtenir l'URL réelle d'un téléchargement de publication ?

Salut !
J’ai cherché partout sur Internet mais sans succès, alors j’ai décidé de demander ici.

Permettez-moi d’ajouter un peu de contexte, nous créons un front-end personnalisé en utilisant l’API utilisateur de Discourse. Là où j’essayais de rendre le contenu brut d’une publication, les images sont passées comme ceci : uploads://<id>.png donc le navigateur ne peut pas les récupérer.

Y a-t-il un moyen d’obtenir l’URL réelle via l’API ? comme https://custom.discourse.org/uploads/<id>.png ou quelque chose de ce genre ?

Santé !

1 « J'aime »

Voir Converting short upload URLs to full URLs

6 « J'aime »

Merci beaucoup, je vais y jeter un œil !

1 « J'aime »

Salut @RGJ J’ai essayé le code d’exemple Python, mentionné ici : Converting short upload URLs to full URLs - #2 by michaeld

Mais il semble qu’il ne décode pas correctement.

Voici le code que j’ai fini par essayer. Il devrait décoder en « 77f164006403e10d7d40143d525f8a5d69390baf » mais j’obtiens « 77f13112951f458abf39d5e480c59eba10c97f31 », une idée de pourquoi cela pourrait être le cas ? Je ne suis pas très expérimenté avec ce genre de choses.

import base62
input = "h73zkifccxqjtevvuahwq9hefkt"
expected = "77f164006403e10d7d40143d525f8a5d69390baf"

decoded = hex(base62.decode(input, base62.CHARSET_INVERTED))[2:].zfill(40)

print('decoded: ' + decoded)

if expected != decoded:
  print('not decoded correctly')
else:
  print('decoded correctly')

C’est ma faute, il était converti en minuscules avant que j’imprime le lien uploads:// dans la console, donc le décodage n’a pas fonctionné. Utiliser la bonne casse fonctionne !

Merci beaucoup pour votre aide rapide !!!

Voici le code que j’ai utilisé dans Flutter pour y parvenir :

import 'package:base_x/base_x.dart';
import 'package:hex/hex.dart';

String decodeUploadsLink(String encoded) {
  var base62Rev = BaseXCodec('0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ');
  var decodedRev = base62Rev.decode(encoded);
  return HEX.encode(decodedRev);
}
5 « J'aime »