업로드 짧은 URL 조회 및 생성

게시글에 다음과 같이 표시됩니다:

![img-MAVMAbkLhcg3sooqMLUyKIhT](upload://>>>>>yygWIAKKT974aRWzlyDof2O82bL<<<<<.jpeg)

이를 다음 값(그리고 그 반대)으로 매핑하는 방법은 무엇인가요:

"//127.0.0.1:4200/uploads/default/original/1X/abcafdf0e1d9262d515075420e4d940718796a5d.jpeg"

이것은 Upload의 url 속성으로 나타납니다.

?

이 함수를 사용해야 합니다:

https://github.com/discourse/discourse/blob/c38b5094da44554f2ffdee7e37eba95fa9ce461/app/models/upload.rb#L455C3-L457C6

그 다음 데이터베이스에서 SHA1를 조회하여 업로드 레코드를 찾으면 됩니다.

아, 그게 SHA1이었군요. 아, 어이없다!

네, 짧은 URL과 일반 URL 모두에 SHA1이 포함되어 있습니다.

차이는 긴 URL이 데이터베이스의 것과 일치하는 원래의 16진수 인코딩된 버전을 사용한다는 점입니다. upload:// "짧은 URL"은 동일한 해시값의 base62 표현이므로 더 적은 문자를 사용합니다.

죄송합니다, 이제 이해했습니다.

즉, 다음이 있는 거죠:

  • 게시물에 있는 short-url
  • 업로드할 원래의 긴 url
  • 업로드 과정에서 생성된 SHA1

그리고 당신은 short-url로부터 url을 찾는 방법을 알려주셨네요.

죄송합니다. 아직 이른 시간이라, 만약 제 목표가 short-url을 _생성_하는 것이라면, SHA1을 base62로 변환해야 하는 건가요?

어디서 이 작업을 수행하고 계신가요? Rails 앱인가요?

그렇다면 upload.short_url과 upload.url을 사용하여 URL을 생성할 수 있습니다.

먼저 업로드 레코드를 찾는 방법은 다음과 같습니다:

sha1 = Upload.sha1_from_long_url(...)
# 또는
sha1 = Upload.sha1_from_short_url(...)

# 그리고

upload = Upload.find_by(sha1: sha1)

네, Rails입니다. 백엔드에서 업로드를 하고 있어요.

OMGoodness:

Upload.last.short_url

"upload://fkO7C9M7SLRhXjEiFTOSUJIdCgJ.jpeg" :tada:

David, 정말 죄송합니다! 그걸 완전히 놓치고 있었어요!!

적어도 이 토픽 덕분에 관심 있는 분들에게 이 모든 것이 명확해졌네요.

다양한 정보 감사합니다.