diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb index 6d7a51879cc9b858d5c466f128f12769ffd9cc22..0065ebbb88868a565e8c5b8fce84f4507f251175 100644 --- a/app/controllers/media_controller.rb +++ b/app/controllers/media_controller.rb @@ -1,12 +1,9 @@ class MediaController < ApplicationController skip_before_action :authenticate_user! + before_action :load_blob + def show - begin - @blob = ActiveStorage::Blob.find_signed! params[:signed_id] - rescue ActiveSupport::MessageVerifier::InvalidSignature - raise ActiveRecord::RecordNotFound - end @size = @blob.byte_size if @blob.variable? variant_service = VariantService.compute(@blob, params[:filename_with_transformations], params[:format]) @@ -24,4 +21,14 @@ class MediaController < ApplicationController response.headers["Content-Length"] = "#{@size}" redirect_to blob_or_variant_url end + + protected + + def load_blob + begin + @blob = ActiveStorage::Blob.find_signed! params[:signed_id] + rescue ActiveSupport::MessageVerifier::InvalidSignature + raise ActiveRecord::RecordNotFound + end + end end