Skip to content

Instantly share code, notes, and snippets.

@undersky0
undersky0 / shrine.rb
Created March 5, 2022 09:50
Initializer
require "shrine"
require "shrine/storage/file_system"
require "bunny_storage"
storage = if Rails.env.production?
BunnyStorage.new
else
Shrine::Storage::FileSystem.new("public", prefix: "uploads")
end
require "fastimage"
class ImageUploader < Shrine
plugin :pretty_location, identifier: "id"
plugin :instrumentation # this adds logs: can be removed later - for development its ok
plugin :determine_mime_type
plugin :store_dimensions
plugin :validation
plugin :validation_helpers
class BunnyStorage
attr_reader :id, :image
def upload(io, id, shrine_metadata: {}, **upload_options)
@image = io
@id = id
request = put_request
request.body = body
response = https.request(request)