Sha256: 2c7508b02bd34808bb1685cc9ee97071f49ef6b018a8d23edc25d99b18da8795

Contents?: true

Size: 892 Bytes

Versions: 98

Compression:

Stored size: 892 Bytes

Contents

# frozen_string_literal: true

# Creates a new blob on the server side in anticipation of a direct-to-service upload from the client side.
# When the client-side upload is completed, the signed_blob_id can be submitted as part of the form to reference
# the blob that was created up front.
class ActiveStorage::DirectUploadsController < ActiveStorage::BaseController
  def create
    blob = ActiveStorage::Blob.create_before_direct_upload!(**blob_args)
    render json: direct_upload_json(blob)
  end

  private
    def blob_args
      params.require(:blob).permit(:filename, :byte_size, :checksum, :content_type, metadata: {}).to_h.symbolize_keys
    end

    def direct_upload_json(blob)
      blob.as_json(root: false, methods: :signed_id).merge(direct_upload: {
        url: blob.service_url_for_direct_upload,
        headers: blob.service_headers_for_direct_upload
      })
    end
end

Version data entries

98 entries across 93 versions & 9 rubygems

Version Path
trusty-cms-7.0.9.1 vendor/bundle/ruby/3.3.0/gems/activestorage-7.0.8.7/app/controllers/active_storage/direct_uploads_controller.rb
minato_ruby_api_client-0.2.2 vendor/bundle/ruby/3.2.0/gems/activestorage-7.1.3.4/app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.2.1 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.1.5.1 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.0.8.7 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.2 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.1.5 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.1.2 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.1.4.2 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.0.8.6 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-6.1.7.10 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-6.1.7.9 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.1.1 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.1.4.1 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.0.8.5 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.1.4 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.1 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.0 app/controllers/active_storage/direct_uploads_controller.rb
activestorage-7.2.0.rc1 app/controllers/active_storage/direct_uploads_controller.rb
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/activestorage-7.0.8.4/app/controllers/active_storage/direct_uploads_controller.rb