class PredicsisMlSdk::Upload

Public Class Methods

complete(id, path, token = bearer_token) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 26
def self.complete(id, path, token = bearer_token)
  new(id, path, token).complete
end
get_part_url(id, path, part_number, token = bearer_token) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 22
def self.get_part_url(id, path, part_number, token = bearer_token)
  new(id, path, token).get_part_url(part_number)
end
initiate(token = bearer_token) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 15
def self.initiate(token = bearer_token)
  data = Requests.initiate_upload(token)
  new(data['id'], data['path'], token).tap do |upload|
    upload.define_attributes(data)
  end
end
new(id, path, token = bearer_token) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 30
def initialize(id, path, token = bearer_token)
  @id = id
  @path = path
  @token = token
end
start(file, token = bearer_token) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 9
def self.start(file, token = bearer_token)
  Upload.initiate.tap do |u|
    u.upload(file)
  end
end

Public Instance Methods

complete() click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 52
def complete
  Requests.complete_upload(token, id, path)
end
get_part_url(part_number) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 48
def get_part_url(part_number)
  Requests.get_part_url(token, id, part_number, path)['part_url']
end
path() click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 62
def path
  @path ||= defined?(key) ? key : object
end
progressbar() click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 66
def progressbar
  @progressbar ||= ProgressBar.create(format: '|%b>%i| %p%% %t', starting_at: 0, :total => @nb_of_parts)
end
to_h() click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 56
def to_h
  instance_variables.each_with_object({}) do |var, hash|
    hash[var.to_s.delete("@")] = instance_variable_get(var) unless var.to_s == '@token'
  end
end
upload(file) click to toggle source
# File lib/predicsis_ml_sdk/upload.rb, line 36
def upload(file)
  path = split_into_files(file)
  nb_of_parts(file).times do |i|
    tmp_path = path + i.to_s.rjust(5, '0')
    sleep(1) until exists?(tmp_path, i, file)
    Requests.upload(get_part_url(i + 1), tmp_path, i + 1)
    progressbar.increment
  end
  Thread.new { FileUtils.rm_rf Dir.glob(path.gsub('part_', '')) }
  complete
end