Sha256: 0797355135e040ed5844617412d7c27625f4e1df8fd217067ecb6bc9ce0582da

Contents?: true

Size: 817 Bytes

Versions: 3

Compression:

Stored size: 817 Bytes

Contents

require_relative "uploaders/s3"

module Vzaar
  class Uploader < Struct.new(:conn, :signature, :opts)
    attr_reader :guid

    def upload
      if link_upload?
        link
      else
        result = s3.upload
        if result[:success]
          opts[:chunks] = result[:total_chunks]
          yield(self) if block_given?
        end
      end
    rescue Exception => e
      raise(Vzaar::Error, "Upload error: " + e.message)
    end

    def processing_params
      opts.merge guid: guid
    end

    private

    def link_upload?
      opts[:url]
    end

    def guid
      signature.guid
    end

    def s3
      Uploaders::S3.new(opts[:path], signature)
    end

    def link
      _opts = opts.merge({ guid: guid, key: signature.key })
      Request::LinkUpload.new(conn, _opts).execute
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
vzaar-1.6.2 lib/vzaar/uploader.rb
vzaar-1.6.1 lib/vzaar/uploader.rb
vzaar-1.6.0 lib/vzaar/uploader.rb