Method: ActiveStorage::Service::S3Service#upload

Defined in:
activestorage/lib/active_storage/service/s3_service.rb

#upload(key, io, checksum: nil, filename: nil, content_type: nil, disposition: nil, custom_metadata: {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
38
# File 'activestorage/lib/active_storage/service/s3_service.rb', line 28

def upload(key, io, checksum: nil, filename: nil, content_type: nil, disposition: nil, custom_metadata: {}, **)
  instrument :upload, key: key, checksum: checksum do
    content_disposition = content_disposition_with(filename: filename, type: disposition) if disposition && filename

    if io.size < multipart_upload_threshold
      upload_with_single_part key, io, checksum: checksum, content_type: content_type, content_disposition: content_disposition, custom_metadata: 
    else
      upload_with_multipart key, io, content_type: content_type, content_disposition: content_disposition, custom_metadata: 
    end
  end
end