class ActiveStorage::Service::S3Service
def upload_with_multipart(key, io, content_type: nil, content_disposition: nil, custom_metadata: {})
def upload_with_multipart(key, io, content_type: nil, content_disposition: nil, custom_metadata: {}) part_size = [ io.size.fdiv(MAXIMUM_UPLOAD_PARTS_COUNT).ceil, MINIMUM_UPLOAD_PART_SIZE ].max object_for(key).upload_stream(content_type: content_type, content_disposition: content_disposition, part_size: part_size, metadata: custom_metadata, **upload_options) do |out| IO.copy_stream(io, out) end end