Module: PredicsisMlSdk::UploadHelper
- Included in:
- Upload
- Defined in:
- lib/predicsis_ml_sdk/upload_helper.rb
Constant Summary collapse
- OFFSET =
52_428_800
Instance Method Summary collapse
- #exists?(part_path, part_number, file_path) ⇒ Boolean
- #nb_of_parts(file) ⇒ Object
- #split_into_files(file_path, offset = OFFSET) ⇒ Object
Instance Method Details
#exists?(part_path, part_number, file_path) ⇒ Boolean
23 24 25 26 27 28 29 30 |
# File 'lib/predicsis_ml_sdk/upload_helper.rb', line 23 def exists?(part_path, part_number, file_path) if @nb_of_parts == part_number + 1 File.exist?(part_path) && File.size(part_path) == File.size(file_path).to_f - ((@nb_of_parts - 1) * OFFSET) else File.exist?(part_path) && File.size(part_path) == OFFSET end end |
#nb_of_parts(file) ⇒ Object
5 6 7 |
# File 'lib/predicsis_ml_sdk/upload_helper.rb', line 5 def nb_of_parts(file) @nb_of_parts ||= (File.size(file).to_f / OFFSET).ceil end |
#split_into_files(file_path, offset = OFFSET) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/predicsis_ml_sdk/upload_helper.rb', line 9 def split_into_files(file_path, offset = OFFSET) dir = "tmp/multiparts/#{Time.now.to_i}" FileUtils.mkdir_p(dir) path = dir + '/part_' Thread.new(abort_on_exception: true) do nb_of_parts(file_path).times do |i| File.open(path + i.to_s.rjust(5, '0'), 'wb') do |tmp_file| tmp_file.write(IO.binread(file_path, offset, offset * i)) end end end path end |