class TusClient::UploadRequest
Asks tus server to upload a chunk of a file, from a specific offset
Attributes
chunk_to_upload[R]
extra_headers[R]
file_size[R]
offset[R]
upload_uri[R]
Public Class Methods
new(upload_uri:, chunk_to_upload:, offset:, file_size:, extra_headers: {})
click to toggle source
# File lib/tusc/upload_request.rb, line 9 def initialize(upload_uri:, chunk_to_upload:, offset:, file_size:, extra_headers: {}) upload_uri = upload_uri.is_a?(URI) ? upload_uri : URI.parse(upload_uri) unless upload_uri.is_a?(URI::HTTP) && !upload_uri.host.nil? raise URI::InvalidURIError, "Could NOT parse host from #{upload_uri.inspect}" end unless chunk_to_upload.is_a?(String) raise ArgumentError, "chunk_to_upload must be a String, found (#{chunk_to_upload}:#{chunk_to_upload.class.name})" end unless file_size.is_a?(Integer) raise ArgumentError, "file_size must be an Integer, found (#{file_size}:#{file_size.class.name})" end unless offset.is_a?(Integer) raise ArgumentError, "offset must be an Integer, found (#{offset}:#{offset.class.name})" end @chunk_to_upload = chunk_to_upload @extra_headers = extra_headers @file_size = file_size @offset = offset @upload_uri = upload_uri end
Public Instance Methods
default_content_type()
click to toggle source
# File lib/tusc/upload_request.rb, line 34 def default_content_type 'application/offset+octet-stream' end
headers()
click to toggle source
# File lib/tusc/upload_request.rb, line 38 def headers { 'Content-Type' => default_content_type, 'Tus-Resumable' => supported_tus_resumable_version, 'Upload-Offset' => offset.to_s }.merge(extra_headers) end
logger()
click to toggle source
# File lib/tusc/upload_request.rb, line 46 def logger @logger ||= TusClient.logger end
perform()
click to toggle source
# File lib/tusc/upload_request.rb, line 50 def perform response = TusClient::HttpService.patch( uri: upload_uri, headers: headers, body: chunk_to_upload, logger: logger ) TusClient::UploadResponse.new(response, file_size) end
supported_tus_resumable_version()
click to toggle source
# File lib/tusc/upload_request.rb, line 60 def supported_tus_resumable_version '1.0.0' end