Module: OauthChina::Upload

Included in:
OAuth
Defined in:
lib/oauth_china/upload.rb

Instance Method Summary collapse

Instance Method Details

#params_without_pic_field(options) ⇒ Object



30
31
32
# File 'lib/oauth_china/upload.rb', line 30

def params_without_pic_field(options)
  options.except(:pic)
end

#set_multipart_field(req, params) ⇒ Object

mutipart编码:www.ietf.org/rfc/rfc1867.txt



25
26
27
28
# File 'lib/oauth_china/upload.rb', line 25

def set_multipart_field(req, params)
  multipart_post = Multipart::MultipartPost.new
  multipart_post.set_form_data(req, params)
end

#sign_without_pic_field(req, access_token, options) ⇒ Object

图片不参与签名



18
19
20
21
22
# File 'lib/oauth_china/upload.rb', line 18

def sign_without_pic_field(req, access_token, options)
  req.set_form_data(params_without_pic_field(options))
  self.consumer.sign!(req, access_token)
  req
end

#upload(url, options) ⇒ Object

NOTICE: 各个微博字段名可能不统一



6
7
8
9
10
11
12
13
14
15
# File 'lib/oauth_china/upload.rb', line 6

def upload(url, options)
  url  = URI.parse(url)
  http = Net::HTTP.new(url.host, url.port)

  req  = Net::HTTP::Post.new(url.request_uri)
  req  = sign_without_pic_field(req, self.access_token, options)
  req  = set_multipart_field(req, options)

  http.request(req)
end