Как отключить автоматически сгенерированные маршруты с помощью Active Storage - PullRequest
0 голосов
/ 25 сентября 2018

Я обновляю существующее приложение до Rails 5.2.

Старое приложение использует Paperclip для хранения файлов, и я пытаюсь переместить его в ActiveStorage.

Мое приложение предоставляет API, который позволяетпользователи могут безопасно загружать файлы (используя пары ключ / секрет для подписания запросов).

Когда я установил ActiveStorage, я обнаружил несколько новых маршрутов

      rails_service_blob GET  /rails/active_storage/blobs/:signed_id/*filename(.:format)                               active_storage/blobs#show
rails_blob_representation GET  /rails/active_storage/representations/:signed_blob_id/:variation_key/*filename(.:format) active_storage/representations#show
       rails_disk_service GET  /rails/active_storage/disk/:encoded_key/*filename(.:format)                              active_storage/disk#show
update_rails_disk_service PUT  /rails/active_storage/disk/:encoded_token(.:format)                                      active_storage/disk#update
     rails_direct_uploads POST /rails/active_storage/direct_uploads(.:format)                                           active_storage/direct_uploads#create

Как отключить эти маршруты, чтобы запретить случайныезагружает в мое приложение.

1 Ответ

0 голосов
/ 05 ноября 2018

Чтобы обезопасить удаление всех маршрутов ActiveStorage без побочных эффектов, добавьте это в config / application.rb:

class Application < Rails::Application
   ...
   initializer(:remove_activestorage_routes, after: :add_routing_paths) {|app|
      app.routes_reloader.paths.delete_if {|path| path =~ /activestorage/}}
   ...
end

Я не советую заменять require 'rails/all' в config / application.rb списком добытых камней рельсовиз исходного кода rails, который часто рекомендуется.

...