Sha256: 01d7d12031843877ed611a90f47298301a55c65407f5d267d45823504d72c0b3

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

require 'webrick/httputils'
require 'curl'


module Vimeo
  module Advanced

    class Upload < Vimeo::Advanced::Base

      def get_upload_ticket(auth_token)
        sig_options = {
          :auth_token => auth_token,
          :method => "vimeo.videos.upload.getTicket"
        }

        make_request sig_options
      end

      def check_upload_status(ticket_id, auth_token)
        sig_options = {
          :ticket_id => ticket_id,
          :auth_token => auth_token,
          :method => "vimeo.videos.checkUploadStatus"
        }

        make_request sig_options
      end

			def confirm_upload(auth_token, ticket_id, json_manifest)
        sig_options = {
          :auth_token => auth_token,
					:ticket_id => ticket_id,
          :method => "vimeo.videos.upload.confirm"
        }
				api_sig = generate_api_sig(sig_options)
				puts "/api/rest/v2/?#{query(sig_options, api_sig).to_params}"
				self.class.post "/api/rest/v2/", :body => query(sig_options.merge(:json_manifest => json_manifest), api_sig)
      end

      ###
      # Upload +file+ to vimeo with +ticket_id+ and +auth_token+
      def upload file, ticket_id, end_point, auth_token
        params = {
          :auth_token => auth_token,
          :ticket_id  => ticket_id
        }
        params[:api_sig] = generate_api_sig params

        c = Curl::Easy.new(end_point)
        c.multipart_form_post = true
        c.http_post(
          *(params.map { |k,v| Curl::PostField.content(k.to_s, v) } +
          [Curl::PostField.file('file_data', file)])
        )
				{:files => [{:md5 => c.body_str}]}.to_json
      end

      def signature_for_file_upload(ticket_id, auth_token)
        sig_options = {
          :ticket_id => ticket_id,
          :auth_token => auth_token
        }
        generate_api_sig sig_options
      end
    end

  end # Advanced
end # Vimeo

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sirlantis-vimeo-1.3.1 lib/vimeo/advanced/upload.rb