class Uploadcare::Client::MultipartUpload::ChunksClient

This class splits file into chunks of set chunk_size and uploads them into cloud storage. Used for multipart uploads @see uploadcare.com/api-refs/upload-api/#tag/Upload/paths/https:~1~1uploadcare.s3-accelerate.amazonaws.com~1%3C%3Cpresigned-url%3E/put

Constants

CHUNK_SIZE

Public Instance Methods

api_root() click to toggle source
# File lib/uploadcare/client/multipart_upload/chunks_client.rb, line 26
def api_root
  ''
end
headers() click to toggle source
# File lib/uploadcare/client/multipart_upload/chunks_client.rb, line 30
def headers
  {}
end
upload_chunks(object, links) click to toggle source

In multiple threads, split file into chunks and upload those chunks into respective Amazon links @param object [File] @param links [Array] of strings; by default list of Amazon storage urls

# File lib/uploadcare/client/multipart_upload/chunks_client.rb, line 18
def upload_chunks(object, links)
  Parallel.each(0...links.count, in_threads: Uploadcare.config.upload_threads) do |link_id|
    offset = link_id * CHUNK_SIZE
    chunk = IO.read(object, CHUNK_SIZE, offset)
    upload_chunk(chunk, links[link_id])
  end
end

Private Instance Methods

default_params() click to toggle source
# File lib/uploadcare/client/multipart_upload/chunks_client.rb, line 40
def default_params
  {}
end
upload_chunk(chunk, link) click to toggle source
# File lib/uploadcare/client/multipart_upload/chunks_client.rb, line 36
def upload_chunk(chunk, link)
  put(path: link, body: chunk, headers: { 'Content-type': 'application/octet-stream' })
end