upyun-rb 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a83075847acc07430ce2f01108043a2a5a7d70d0
4
+ data.tar.gz: 4eadc73963fa72efef740ae5bb182467e9913521
5
+ SHA512:
6
+ metadata.gz: f7482e415297e1833f874c79e6e89af409ceeaffe6ceb8bf404317f5bfb67ac63c9b996b814950ae92a87ec80864a2751ec659ffe3d43de2ab35c68568554e10
7
+ data.tar.gz: 10c3591bf84c2520d56d5f089f75f9a15b6402f76edef2f59eb5abef8ac3ad8c663307fae3b67255734b0aef59ffb82f4ddd8fc05ae824f90ca678033f88c474
data/LICENSE ADDED
File without changes
data/README.md ADDED
File without changes
@@ -0,0 +1,36 @@
1
+ require 'digest'
2
+
3
+ module Upyun
4
+ class Bucket
5
+ def initializer(bucket, operator, password, options={})
6
+ upyun_host = options[:upyun_host] || "http://v0.api.upyun.com"
7
+
8
+ @bucket = bucket
9
+ @operator = operator
10
+ @signed_password = Digest::MD5.hexdigest(password)
11
+
12
+ @connection = Faraday.new(:url => upyun_host) do |faraday|
13
+ faraday.request :url_encoded # form-encode POST params
14
+ faraday.response :logger # log requests to STDOUT
15
+ faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
16
+ end
17
+ end
18
+
19
+ def put(path, file)
20
+ date = Upyun::Util.current_date
21
+ mime_type = `file -Ib #{file}`.gsub(/\n/,"").split(';')[0]
22
+ file_size = file.nil? ? 0 : File.size(file)
23
+ sign = Digest::MD5.hexdigest("#{method}&#{uri}&#{date}&#{filesize}&#{@signed_password}")
24
+
25
+ @connection.put do |req|
26
+ req.url path
27
+ req.body = Faraday::UploadIO.new(file, mimetype)
28
+ req.headers['Content-Type'] = mime_type
29
+ req.headers['Content-Length'] = file_size.to_s
30
+ req.headers['Authorization'] = "UpYun #{user}:#{sign}"
31
+ req.headers['Date'] = date
32
+ req.headers['Expect'] = ''
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,9 @@
1
+ module Upyun
2
+ class Util
3
+ class << self
4
+ def current_date
5
+ Time.now.utc.strftime('%a, %d %b %Y %H:%M:%S GMT')
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module Upyun
2
+ VERSION = "0.0.1"
3
+ end
data/lib/upyun-rb.rb ADDED
@@ -0,0 +1,2 @@
1
+ require 'upyun-rb/util'
2
+ require 'upyun-rb/bucket'
metadata ADDED
@@ -0,0 +1,77 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: upyun-rb
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Larry Zhao
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-12-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: faraday
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: ''
42
+ email:
43
+ - thehiddendepth@gmail.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - LICENSE
49
+ - README.md
50
+ - lib/upyun-rb.rb
51
+ - lib/upyun-rb/bucket.rb
52
+ - lib/upyun-rb/util.rb
53
+ - lib/upyun-rb/version.rb
54
+ homepage: http://rubygems.org/gems/aidi
55
+ licenses: []
56
+ metadata: {}
57
+ post_install_message:
58
+ rdoc_options: []
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 1.3.6
71
+ requirements: []
72
+ rubyforge_project:
73
+ rubygems_version: 2.2.0.rc.1
74
+ signing_key:
75
+ specification_version: 4
76
+ summary: ''
77
+ test_files: []