2cdn 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3c996bcc49f1bca833dba20e11da6c94df4623ef
4
- data.tar.gz: f8969fcce81a249e8c41cfb86da20ed5b8341384
3
+ metadata.gz: c691285e178f968741303fa060a4c2a327d8557f
4
+ data.tar.gz: 3b138f756a8d101de74fbab6c51d886c7de63d9a
5
5
  SHA512:
6
- metadata.gz: a3054742ee178d240cebfc1b87c883680e4a90fb2e7332fe3d8237c3ad9508df1f750b8a587822db2735ba3ba507ee2982357ac8d5d487a4970d27d9b7c34bc7
7
- data.tar.gz: 9a51696e1f77c49e93974060335d8eae02c9fadbc8dcf8ad3d3571867f3329907ed017a527d8b904aea9495067c13184717bab58d7c4f95a3b95366fe9b4936d
6
+ metadata.gz: 538b3f25fc313e7635de598ef4db24039996e248770bb2957ee839bb7eb1016683127d5b72c3045bac8714a1b4382a50714ca2de99a33d3aef8a41456222382c
7
+ data.tar.gz: 2911819ec352e3cdf660a28a1d9f506424d20a545ad7370361f3a945a9239f0e9a61d555c0366575dbd3dac0769ad18defe2c5963eb5c42cdc6520c0f90cb664
data/README.md CHANGED
@@ -9,7 +9,7 @@ TODO: Delete this and the text above, and describe your gem
9
9
  Add this line to your application's Gemfile:
10
10
 
11
11
  ```ruby
12
- gem 'AutoAliCDN'
12
+ gem '2cdn'
13
13
  ```
14
14
 
15
15
  And then execute:
@@ -18,11 +18,25 @@ And then execute:
18
18
 
19
19
  Or install it yourself as:
20
20
 
21
- $ gem install AutoAliCDN
21
+ $ gem install 2cdn
22
22
 
23
23
  ## Usage
24
24
 
25
- TODO: Write usage instructions here
25
+ ### Setup
26
+
27
+ $ 2cdn setup
28
+
29
+ ### Edit config
30
+
31
+ $ vim config/2cdn.yml
32
+
33
+ ### Upload
34
+
35
+ $ 2cdn upload my_path/my.zip remote_path
36
+
37
+ ### Download
38
+
39
+ $ 2cdn download remote_path/2018.1.zip my_path/2018.1.zip
26
40
 
27
41
  ## Development
28
42
 
@@ -38,4 +52,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
38
52
  ## License
39
53
 
40
54
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
41
-
data/bin/2cdn CHANGED
@@ -11,10 +11,10 @@ Options:
11
11
  -V, --version Show program version
12
12
 
13
13
  Basic usage:
14
- 2cdn help # Show help
15
- 2cdn setup # Init oss file paths
16
- 2cdn upload # Upload resources to Aliyun Oss
17
- 2cdn debug # Change resources path to local path
14
+ 2cdn help # Show help
15
+ 2cdn setup # Init oss file paths
16
+ 2cdn upload # Upload resources to Aliyun Oss `2cdn upload $local_file $remote_file $is_delete`
17
+ 2cdn download # Download resources path to local path
18
18
  EOB
19
19
  end
20
20
 
@@ -39,9 +39,6 @@ end
39
39
 
40
40
  if ARGV[0] =~ /^setup$/
41
41
  (system "mkdir #{app_path}/config") unless File.directory?("#{app_path}/config")
42
- (system "mkdir #{app_path}/images") unless File.directory?("#{app_path}/images")
43
- (system "mkdir #{app_path}/javascripts") unless File.directory?("#{app_path}/javascripts")
44
- (system "mkdir #{app_path}/css") unless File.directory?("#{app_path}/css")
45
42
  system "touch #{config_file}"
46
43
  if File.read(config_file).length<=0
47
44
  File.open(config_file, 'w') do |f|
@@ -66,9 +63,9 @@ if ARGV[0] =~ /^upload$/
66
63
  exit
67
64
  end
68
65
 
69
- AutoAliCDN::Oss.oss_upload(config_file, app_path)
66
+ AutoAliCDN::Oss.oss_upload(config_file, app_path, ARGV[1], ARGV[2], ARGV[3])
70
67
  end
71
68
 
72
- if ARGV[0] =~ /^debug$/
73
- AutoAliCDN::Oss.oss_debug(config_file, app_path)
74
- end
69
+ if ARGV[0] =~ /^download$/
70
+ AutoAliCDN::Oss.oss_download(config_file, app_path, ARGV[1] , ARGV[2])
71
+ end
@@ -30,103 +30,37 @@ module AutoAliCDN
30
30
 
31
31
  puts bucket.name
32
32
  bucket.put_object(config.site_resource_path+"/.start.txt") { |stream| stream << '2cdn setup ok' }
33
- bucket.put_object(config.site_resource_path+"/images/.start.png") { |stream| stream << '2cdn setup ok' }
34
- bucket.put_object(config.site_resource_path+"/javascripts/.start.js") { |stream| stream << "console.log('start from here')" }
35
- bucket.put_object(config.site_resource_path+"/css/.start.css") { |stream| stream << "body{padding:0;}" }
36
33
  end
37
34
 
38
- #upload local files to server
39
- def self.oss_upload(config_path, app_path,rename=false)
35
+ def self.oss_upload(config_path, app_path, local_file, remote_file, delete='false')
40
36
  config = oss_config(config_path)
41
-
42
- images_path = app_path+'/images'
43
- javascripts_path = app_path+'/javascripts'
44
- css_path = app_path+'/css'
45
-
46
37
  bucket = bucket(config)
47
38
 
48
- replace_res_path = ->(local_path, remote_path) do
49
- Dir.foreach(app_path) do |f|
50
- if f =~ /\.(html)|(htm)$/
51
- remote_prefix = remote_path.gsub(/-\w{32}\.(gif|png|jpg|jpeg|css|js)$/, '')
52
-
53
- file_content = File.read("#{app_path}/#{f}").gsub(local_path, remote_path)
54
-
55
- file_content = file_content.gsub(Regexp.new(remote_prefix+'-\w{32}\.(gif|png|jpg|jpeg|css|js)'), remote_path)
56
-
57
- File.open("#{app_path}/#{f}", "w") do |f2|
58
- f2.puts file_content
59
- end
60
- end
61
- end
62
- end
63
-
64
- #upload image javascripts css etc.
65
- upload_c = ->(res_path) do
66
- Dir.foreach(res_path) do |name|
67
- next if name =~ /^(\.)|(\.\.)$/
68
- file_path = res_path+"/#{name}"
69
- file_md5 = Digest::MD5.hexdigest(File.read(file_path))
70
- res_type = res_path.gsub(/^.*\//, '')
71
- suffix = "."+name.split(/\./).last
72
- new_name = rename ? name.gsub(/#{suffix}$/, "-#{file_md5}#{suffix}"): name
73
- object_key = config.site_resource_path+"/#{Time.now.strftime("%F %H:%M")}/#{new_name}"
74
- if bucket.object_exists?(object_key)
75
- puts "#{name} --> #{object_key}".color(:dimgray)
76
- replace_res_path.call(res_type+'/'+name, config.domain_name+'/'+object_key)
77
- else
78
- bucket.put_object(object_key, :file => file_path)
79
- puts "#{name} --> #{object_key}".color(:green)
80
- replace_res_path.call(res_type+'/'+name, config.domain_name+'/'+object_key)
81
- end
39
+ object_key = config.site_resource_path+"/#{remote_file}"
40
+ if bucket.object_exists?(object_key)
41
+ puts "#{name} --> #{object_key}".color(:dimgray)
42
+ else
43
+ begin
44
+ bucket.put_object(object_key, :file => "#{app_path}/#{local_file}")
45
+ puts "#{name} --> #{object_key}".color(:green)
46
+ File.delete("#{app_path}/#{local_file}") if delete == 'true'
47
+ rescue Aliyun::OSS::CallbackError => e
48
+ puts "Callback failed: #{e.message}"
82
49
  end
83
50
  end
84
-
85
- upload_c.call(images_path)
86
- upload_c.call(javascripts_path)
87
- upload_c.call(css_path)
88
51
  end
89
52
 
90
- def self.oss_debug(config_path, app_path)
53
+ def self.oss_download(config_path, app_path, remote_file, local_file)
91
54
  config = oss_config(config_path)
92
55
 
93
- images_path = app_path+'/images'
94
- javascripts_path = app_path+'/javascripts'
95
- css_path = app_path+'/css'
96
-
97
56
  bucket = bucket(config)
98
57
 
99
- replace_res_path = ->(remote_path, local_path) do
100
- Dir.foreach(app_path) do |f|
101
- if f =~ /\.(html)|(htm)$/
102
-
103
- file_content = File.read("#{app_path}/#{f}").gsub(remote_path, local_path)
104
-
105
- File.open("#{app_path}/#{f}", "w") do |f2|
106
- f2.puts file_content
107
- end
108
- end
109
- end
110
- end
111
-
112
- debug_c = ->(res_path) do
113
- Dir.foreach(res_path) do |name|
114
- next if name =~ /^(\.)|(\.\.)$/
115
- file_path = res_path+"/#{name}"
116
- file_md5 = Digest::MD5.hexdigest(File.read(file_path))
117
- res_type = res_path.gsub(/^.*\//, '')
118
- suffix = "."+name.split(/\./).last
119
- object_key = config.site_resource_path+"/#{res_type}/#{name.gsub(/#{suffix}$/, "-#{file_md5}#{suffix}")}"
120
- if bucket.object_exists?(object_key)
121
- replace_res_path.call(config.domain_name+'/'+object_key, res_type+'/'+name)
122
- puts "#{object_key.color(:red)} --> #{"#{res_type}/#{name}".color(:cyan)}"
123
- end
124
- end
58
+ object_key = config.site_resource_path+"/#{remote_file}"
59
+ if bucket.object_exists?(object_key)
60
+ bucket.get_object(object_key, :file => "#{app_path}/#{local_file}")
61
+ puts "#{object_key} --> #{app_path}/#{local_file}".color(:cyan)
125
62
  end
126
63
 
127
- debug_c.call(images_path)
128
- debug_c.call(javascripts_path)
129
- debug_c.call(css_path)
130
64
  end
131
65
 
132
66
  end
@@ -1,3 +1,3 @@
1
1
  module AutoAliCDN
2
- VERSION = "0.1.7"
2
+ VERSION = "0.1.8"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 2cdn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - liuxi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-19 00:00:00.000000000 Z
11
+ date: 2019-01-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler