Rails: получение простого текстового пути к файлу, загруженному в Minio - PullRequest
1 голос
/ 28 июня 2019

У меня есть сервер Minio, куда я загружаю файлы с помощью ActiveStorage, и меня огорчает, что я не могу получить «настоящее» имя файла для своих загрузок, например, если я загружаю «vader.jpg», я получаю этот путь :

image_tag user.avatar.variant(resize: "100x100")

http://minio:9000/railsappdevelopment/variants/VTPPGy7qnLPWHPATLbpfp6aq/2baa7301537de02528c8347e9137a2c84c36c385682e395ae23b967891ba9d8b?response-content-disposition=inline%3B%20filename%3D%22vader.jpg%22%3B%20filename%2A%3DUTF-8%27%27vader.jpg&response-content-type=image%2Fjpeg&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=root%2F20190628%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20190628T133239Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=2b18863d1600f1e402f6b4582ee27cfe3f80532b2d0fb110ea0581557f6b5264

Я не хочу, чтобы весь этот мусор, я не хочу, чтобы URL-адреса истекли, все, что я хочу, это http://minio:9000/railsappdevelopment/id/vader.jpg

Контейнеры общедоступны и доступны только для чтения.

Кто-нибудь знает, как избавиться от параметров URL?

1 Ответ

1 голос
/ 28 июня 2019

К сожалению, именно так работает ActiveStorage - он использует случайные идентификаторы в качестве ключей хранения (= имена файлов для minio), даже без расширения файла, поэтому браузеры должны правильно интерпретировать изображение, заголовок типа содержимого должен быть предоставлен minio (обычно этоопределяется расширением файла), также все запросы к содержимому должны быть динамическими (с истекающими ссылками и т. д.)

Было несколько запросов в проблемах с рельсами (например, # 30431 , # 31419 ), но положительной реакции пока нет.

Так что, если ваши требования к хостингу изображений отличаются от требований базового лагеря (которые заполнены activestorage) - на данный момент вам приходится прибегать к другимбиблиотеки, такие как храм или нестандартное решение.

...