게시물의 실제 업로드 URL을 가져오는 방법?

안녕하세요!
인터넷을 샅샅이 검색해 보았지만 찾지 못해서, 결국 이곳에 질문을 올렸습니다.

조금 더 상황을 설명드리자면, 우리는 Discourse 사용자 API를 사용하여 커스텀 프론트엔드를 개발하고 있습니다. 게시물의 원본(raw) 콘텐츠를 렌더링하려고 했을 때, 이미지들이 uploads://<id>.png 형태로 전달되어 브라우저가 이를 가져올 수 없었습니다.

API를 통해 실제 URL, 예를 들어 https://custom.discourse.org/uploads/<id>.png와 같은 형태의 주소를 가져올 수 있는 방법이 있을까요?

감사합니다!

Converting short upload URLs to full URLs 참조

정말 감사합니다, 확인해 보겠습니다!

Hey @RGJ 여기 언급된 Python 예제 코드를 방금 시도해 보았습니다: Converting short upload URLs to full URLs - #2 by michaeld

하지만 올바르게 디코딩되지 않는 것 같습니다.

제가 결국 시도해 본 코드입니다. "77f164006403e10d7d40143d525f8a5d69390baf"로 디코딩되어야 하는데, "77f13112951f458abf39d5e480c59eba10c97f31"이 나옵니다. 이런 일이 발생하는 이유가 무엇일지 혹시 아시는 분 있나요? 저는 이런 종류의 작업에 대해 경험이 많지 않습니다.

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')

실수했어요. 콘솔에 uploads:// 링크를 출력하기 전에 소문자로 변환되고 있어서 디코딩이 안 됐어요. 대소문자를 올바르게 사용하면 정상적으로 작동합니다!

빠르게 도와주셔서 정말 감사합니다!!!

flutter에서 이를 구현하기 위해 사용했던 코드는 다음과 같습니다:

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);
}