Появляется в сообщении:

Как сопоставить это с этим (и наоборот):
"//127.0.0.1:4200/uploads/default/original/1X/abcafdf0e1d9262d515075420e4d940718796a5d.jpeg"
которое отображается как свойство url объекта Upload.
?
david
(David Taylor)
25.Апрель.2025 08:09:11
2
Вам следует использовать эту функцию:
а затем найти запись о загрузке в базе данных по значению SHA1.
А, вот это SHA1? Вот это да!
david
(David Taylor)
25.Апрель.2025 08:12:11
4
Да, и короткая ссылка, и обычная ссылка содержат SHA1.
Разница в том, что длинная ссылка использует исходную шестнадцатеричную версию, которая совпадает с той, что в базе данных. Короткая ссылка в формате upload:// — это представление того же хеша в системе base62, что позволяет сократить количество символов.
Извините, сейчас понял.
Итак, есть:
short-url в сообщении
url — исходная длинная ссылка для загрузки
SHA1, сгенерированный при загрузке
и вы только что подсказали, как найти url по short-url
Извините, раннее время суток. Если моя цель — создать short-url, нужно ли мне транскодировать SHA1 в base62?
david
(David Taylor)
25.Апрель.2025 08:25:43
7
Где вы это делаете? В приложении Rails?
Если да, то вы можете генерировать URL с помощью upload.short_url и upload.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"
Извини, Дэвид, я совершенно упустил это!!
По крайней мере, эта тема проясняет всё для любого заинтересованного.
Спасибо за всю информацию.
Upload
.where(dominant_color: nil)
.order("id desc")
.first(count)
.each { |upload| upload.calculate_dominant_color! }
end
private
def short_url_basename
"#{Upload.base62_sha1(sha1)}#{extension.present? ? ".#{extension}" : ""}"
end
end
# == Schema Information
#
# Table name: uploads
#
# id :integer not null, primary key
# user_id :integer not null
# original_filename :string not null