s3backup 0.7.2 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/s3backup/manager.rb +1 -8
- data/lib/s3backup/s3wrapper.rb +49 -4
- data/lib/s3backup.rb +1 -1
- metadata +2 -2
data/lib/s3backup/manager.rb
CHANGED
@@ -192,9 +192,6 @@ module S3backup
|
|
192
192
|
#前回と今回のファイル・ツリーを比較
|
193
193
|
diff_info = tree_info.diff(old_tree)
|
194
194
|
S3log.debug("diff_info=#{diff_info.inspect}")
|
195
|
-
tmp = Tempfile.open("tree_info.yml")
|
196
|
-
tmp.write(tree_info.dump_yaml)
|
197
|
-
tmp.close
|
198
195
|
dir_map = nil
|
199
196
|
if @resume
|
200
197
|
new_dir_map = tree_info.make_dir_map
|
@@ -203,8 +200,6 @@ module S3backup
|
|
203
200
|
#メモリ節約のため開放
|
204
201
|
old_tree = nil
|
205
202
|
end
|
206
|
-
#メモリ節約のため開放
|
207
|
-
tree_info = nil
|
208
203
|
update_dir = diff_info[:directory][:add] + diff_info[:directory][:modify]
|
209
204
|
#更新されたディレクトリをアップロード
|
210
205
|
update_dir.each do |udir|
|
@@ -220,10 +215,8 @@ module S3backup
|
|
220
215
|
diff_info[:directory][:remove].each do |rm_dir|
|
221
216
|
delete_direcory(rm_dir)
|
222
217
|
end
|
223
|
-
tmp.open
|
224
218
|
#今回のファイル・ツリーをAWS S3に登録
|
225
|
-
@target.post(target_tree_name,
|
226
|
-
tmp.close(true)
|
219
|
+
@target.post(target_tree_name,tree_info.dump_yaml)
|
227
220
|
end
|
228
221
|
def get_target_tree(dir)
|
229
222
|
base_dir = dir
|
data/lib/s3backup/s3wrapper.rb
CHANGED
@@ -44,13 +44,43 @@ module S3backup
|
|
44
44
|
end
|
45
45
|
def exists?(key)
|
46
46
|
key=CGI.escape(key)
|
47
|
-
|
47
|
+
count = 0;
|
48
|
+
while true do
|
49
|
+
begin
|
50
|
+
ret = AWS::S3::S3Object.exists? key,@bucket_name
|
51
|
+
break;
|
52
|
+
rescue => ex
|
53
|
+
count+=1;
|
54
|
+
S3log.info("exists? #{count} times failed. #{key}\n")
|
55
|
+
if count >= @max_retry_count
|
56
|
+
S3log.error("post #{count} times failed #{key_name} #{ex.class}:#{ex.message}\n")
|
57
|
+
exit(-1)
|
58
|
+
end
|
59
|
+
sleep(count*30)
|
60
|
+
AWS::S3::Base.establish_connection!(@args)
|
61
|
+
end
|
62
|
+
end
|
48
63
|
end
|
49
64
|
def get(key)
|
50
65
|
key_name = CGI.escape(key)
|
66
|
+
count = 0;
|
51
67
|
data = nil
|
52
|
-
|
53
|
-
|
68
|
+
while true do
|
69
|
+
begin
|
70
|
+
if AWS::S3::S3Object.exists? key_name,@bucket_name
|
71
|
+
data = AWS::S3::S3Object.value(key_name,@bucket_name)
|
72
|
+
end
|
73
|
+
break;
|
74
|
+
rescue => ex
|
75
|
+
count+=1;
|
76
|
+
S3log.info("get #{count} times failed. #{key_name}\n")
|
77
|
+
if count >= @max_retry_count
|
78
|
+
S3log.error("get #{count} times failed #{key_name} #{ex.class}:#{ex.message}\n")
|
79
|
+
exit(-1)
|
80
|
+
end
|
81
|
+
sleep(count*30)
|
82
|
+
AWS::S3::Base.establish_connection!(@args)
|
83
|
+
end
|
54
84
|
end
|
55
85
|
return data
|
56
86
|
end
|
@@ -110,7 +140,22 @@ module S3backup
|
|
110
140
|
def delete(key)
|
111
141
|
if exists? key
|
112
142
|
S3log.info("S3Object.delete(#{CGI.escape(key)})")
|
113
|
-
|
143
|
+
count = 0;
|
144
|
+
while true do
|
145
|
+
begin
|
146
|
+
AWS::S3::S3Object.delete(CGI.escape(key),@bucket_name)
|
147
|
+
break
|
148
|
+
rescue => ex
|
149
|
+
count+=1;
|
150
|
+
S3log.info("delete #{count} times failed. #{key}\n")
|
151
|
+
if count >= @max_retry_count
|
152
|
+
S3log.error("delete #{count} times failed #{key} #{ex.class}:#{ex.message}\n")
|
153
|
+
exit(-1)
|
154
|
+
end
|
155
|
+
sleep(count*30)
|
156
|
+
AWS::S3::Base.establish_connection!(@args)
|
157
|
+
end
|
158
|
+
end
|
114
159
|
return true
|
115
160
|
end
|
116
161
|
return false
|
data/lib/s3backup.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Takeshi Morita
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-01-
|
12
|
+
date: 2010-01-31 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|