activestorage без ограничения по времени URL - PullRequest
1 голос
/ 27 марта 2020

Я не совсем в курсе последних событий в ActiveStorage. Я использую Rails 5.2.x и у меня есть серьезные проблемы. URL-адрес по умолчанию, сгенерированный для ресурсов, представляет собой ограниченный по времени вызов

  {host}/rails/active_storage/blobs/{long-obfuscated-stuff-here}/{the-actual-file}

Этот метод, очевидно, имел явный сценарий использования в BaseCamp, но если вы используете CDN или Nginx / Apache для непосредственного обслуживания активов с диска это так же полезно, как шоколадный заварной чайник, потому что каждый запрос должен содержать от go до rails/active_storage/blobs, и поскольку это уникальный ограниченный по времени URL, он не может быть кэширован.

Я вижу длинные потоки по этой проблеме, пытающиеся заставить разработчиков ядра принимать PR, чтобы решить эту проблему (например, github issue 34477 )

И проблема может быть решена в последний Rails 6. Но я на Rails 5.2 и не буду обновляться в ближайшем будущем.

Так что мне нужно знать, как получить необработанный URL для базового файла, чтобы я мог обслуживать его напрямую из Nginx / Apache, не проходя через стек Rails.

Есть предложения?

1 Ответ

0 голосов
/ 27 марта 2020

Я бы подождал, пока хорошее решение действительно появится в Rails, но вы всегда можете:

config.active_storage.service_urls_expire_in = 99.years

Опять же, я не уверен, что это действительно правильно, но если у вас есть чтобы иметь постоянные URL, это будет работать.

...