Hallo!\nIch habe das ganze Internet danach durchsucht, aber ohne Erfolg, also habe ich mich entschieden, hier zu fragen.\n\nLassen Sie mich etwas Kontext hinzufügen: Wir erstellen ein benutzerdefiniertes Frontend mit der Discourse-Benutzer-API. Wo ich versucht habe, den rohen Inhalt eines Beitrags zu rendern, werden Bilder wie folgt übergeben: uploads://\u003cid\u003e.png, sodass der Browser sie nicht abrufen kann.\n\nGibt es eine Möglichkeit, die tatsächliche URL über die API zu erhalten? wie https://custom.discourse.org/uploads/\u003cid\u003e.png oder etwas Ähnliches?\n\nProst!
Vielen Dank, ich werde es mir ansehen!
Hallo @RGJ Ich habe gerade den Python-Beispielcode ausprobiert, der hier erwähnt wird: Converting short upload URLs to full URLs - #2 by michaeld
Aber es scheint, dass er nicht richtig dekodiert wird.
Das ist der Code, den ich am Ende ausprobiert habe. Er sollte “77f164006403e10d7d40143d525f8a5d69390baf” dekodieren, aber ich erhalte “77f13112951f458abf39d5e480c59eba10c97f31”. Hast du eine Idee, warum das so sein könnte? Ich bin nicht sehr erfahren mit so etwas.
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')
Mein Fehler, es wurde in Kleinbuchstaben umgewandelt, bevor ich den uploads:// Link zur Konsole ausgab, sodass die Dekodierung nicht funktionierte. Die korrekte Groß-/Kleinschreibung funktioniert!
Vielen Dank für die schnelle Hilfe!!!
Hier ist der Code, den ich in Flutter verwendet habe, um dies zu erreichen:
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);
}