add blobs proxy controller

This commit is contained in:
Pete Matsyburka
2024-02-18 11:26:30 +02:00
parent 5a3174a720
commit a728aa8689
8 changed files with 49 additions and 7 deletions
@@ -0,0 +1,29 @@
# frozen_string_literal: true
module Api
class ActiveStorageBlobsProxyController < ApiBaseController
include ActiveStorage::Streaming
skip_before_action :authenticate_user!
skip_authorization_check
def show
blob_uuid = ApplicationRecord.signed_id_verifier.verified(params[:signed_uuid])
return head :not_found unless blob_uuid
blob = ActiveStorage::Blob.find_by!(uuid: blob_uuid)
if request.headers['Range'].present?
send_blob_byte_range_data blob, request.headers['Range']
else
http_cache_forever public: true do
response.headers['Accept-Ranges'] = 'bytes'
response.headers['Content-Length'] = blob.byte_size.to_s
send_blob_stream blob, disposition: params[:disposition]
end
end
end
end
end