use uuid blobs controller

This commit is contained in:
Pete Matsyburka
2024-02-18 12:58:36 +02:00
parent 71c61fc4b3
commit 78e9e66cb0
5 changed files with 50 additions and 3 deletions
@@ -0,0 +1,35 @@
# frozen_string_literal: true
module Api
class ActiveStorageBlobsProxyLegacyController < ApiBaseController
include ActiveStorage::Streaming
skip_before_action :authenticate_user!
skip_authorization_check
def show
Rollbar.info('Blob legacy') if defined?(Rollbar)
return render json: { error: 'Not authenticated' }, status: :unauthorized unless current_user
blob = ActiveStorage::Blob.find_signed!(params[:signed_blob_id] || params[:signed_id])
if blob.attachments.none? { |a| a.record.account.id == current_user.account_id }
Rollbar.error("Blob account not found: #{blob.id}") if defined?(Rollbar)
return head :not_found
end
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
+1 -1
View File
@@ -6,7 +6,7 @@
</a>
<div class="space-x-3 flex items-center">
<% if @submission.audit_trail.present? %>
<a href="<%= rails_blob_path(@submission.audit_trail) %>" class="white-button" target="_blank">
<a href="<%= ActiveStorage::Blob.proxy_url(@submission.audit_trail.blob) %>" class="white-button" target="_blank">
<%= svg_icon('external_link', class: 'w-6 h-6') %>
<span class="hidden md:inline">
Audit Log