lib/core/transport.rb in rise-cli-0.1.6 vs lib/core/transport.rb in rise-cli-0.1.7
- old
+ new
@@ -1,30 +1,33 @@
-##
-# This file handles all communication to the Upto servers
-##
require 'rex/text'
require 'uri'
require 'json'
require 'http'
module Rise
+ #
+ # Handles all communication with the rise upload server
+ #
module Transport
-
# Handles uploading files
class Uploader
-
- attr_reader :folder_path, :total_files, :include_folder, :uuid, :current_file
+ attr_reader :folder_path, :total_files, :include_folder
+ attr_reader :uuid, :current_file
attr_accessor :files
- def initialize(folder_path, include_folder=true)
+ def initialize(folder_path, include_folder = true)
@folder_path = folder_path
@files = Dir.glob("#{File.absolute_path(folder_path)}/**/*")
@total_files = @files.length
@include_folder = include_folder
- @uuid = "#{File.basename(File.absolute_path(folder_path))}-#{Rex::Text::rand_text_alphanumeric(8)}" # Structure: foldername-8RNDLTRS
+ @uuid = "#{File.basename(File.absolute_path(folder_path))}-#{Rex::Text.rand_text_alphanumeric(8)}" # Structure: foldername-8RNDLTRS
end
+ #
+ # Uploads the files from +folder_path+ to the upload server
+ # @return String the final URL of the uploaded contents
+ #
def upload!(*)
upload_uri_base = "http://rise.sh:8080/api/v1/#{@uuid}"
access_uri = "https://rise.sh/#{@uuid}"
uri = ''
@@ -32,20 +35,20 @@
# It is supposed to make the server make the first layer of files
# before the rest of the layers.
ordered_files = files.sort_by(&:length)
ordered_files.each do |f|
isdir = File.directory?(f)
- final_path = File.absolute_path(f).gsub(File.expand_path(folder_path), '')
+ final_path = File.absolute_path(f).gsub(
+ File.expand_path(folder_path), '')
uri = URI.parse("#{upload_uri_base}/#{final_path}?dir=#{isdir}")
begin
- HTTP.put(uri.to_s, :body => File.read(f))
+ HTTP.put(uri.to_s, body: File.read(f))
rescue Errno::EISDIR
- HTTP.put(uri.to_s, :body => '')
+ HTTP.put(uri.to_s, body: '')
next
end
end
- return access_uri
+ access_uri
end
-
end
end
end