Files
fizzy/app/controllers/uploads_controller.rb
T
Mike Dalessio 704e215eca Production mirrors Active Storage to :purestorage
Also include a script to copy existing blobs to Pure.

Local is still the primary.

Beta will keep using local disk service for Active Storage because I
think there are constraints on source IPs for the Pure cluster.
2025-05-31 14:37:35 -04:00

30 lines
782 B
Ruby

class UploadsController < ApplicationController
include ActiveStorage::SetCurrent
before_action :set_file, only: :create
before_action :set_attachment, only: :show
def create
# FIXME: Try to get upload attachments on root
@upload = Account.sole.uploads_attachments.create! blob: create_blob!
end
def show
expires_in 5.minutes, public: true
redirect_to @attachment.url, allow_other_host: true
end
private
def set_file
@file = params[:file]
end
def set_attachment
@attachment = ActiveStorage::Attachment.find_by! slug: "#{params[:slug]}.#{params[:format]}"
end
def create_blob!
ActiveStorage::Blob.create_and_upload! io: @file, filename: @file.original_filename, content_type: @file.content_type
end
end