s3_meta_sync 0.4.4 → 0.4.5

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: 3976f983750855ddbbc8de6d7b7a38f8b25471dc
4
- data.tar.gz: 2d707bbccab3b1b88b89191aae7ee9bf332b78d2
3
+ metadata.gz: fc959d3e973194fb4fbfb3deddef13cfa6e054df
4
+ data.tar.gz: 364d7b58956386524107f97306bca633289e6ee4
5
5
  SHA512:
6
- metadata.gz: e771453d6350103c521afb15dc23c54e4884dc20aac8e7c26a2214f4a9d7f86012e341b7e7dcd4c88ddefaaa1b75c2d8a06e4aedbdf20c2864ec3098f4d67a95
7
- data.tar.gz: c68eaf670258095a802683804ea301e68f2d644418507f56eb5b1d1af866c4ef5412b713ce1a80fddca3b81ee07b1552f1093e366adfde2aa77f1c5539eb2e07
6
+ metadata.gz: e828832357b51c5af7364d2b263e343de70a640b662b73f981f9c46577a265339857fda8baec7a0a1666053a44dac725583afb5f773d4a915adb696d12768fff
7
+ data.tar.gz: 7cda74fad51d1bb8c2ad83a71804d95cc85d812276ceb037fc772b59de8b1740239c4104774bbe0633957bb279568ce1f4770bca87384000e5a143e1a6299410
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
@@ -1,4 +1 @@
1
- U�S �9>��;����׀b�����P/��2�&^"g��Ӗf3��*��?���`\ϓ}1G��1�V
2
- k��b�!���7F뼖k5tA��y2B�8��Ƣ��"�X������n�bxRQ��,'9��K�������y\��dG/����<o�ߵdr��$�k~߁P@�����H%;�,DKϵ�|�[��5d�
3
- �|��_=D(�o��3�s��ϯY�֗ �ۖ�Q�2�E�Ru�n�|jY��P�im����
4
-
1
+ �;B@�r)�`�"L�%��-\�e�A������>Weoշ�0w�/�#�R ㇻB�X�&������<>�>�x����q�d�e��e$e=��o7��:�8״'�SM��]�z��Drچh^u�
@@ -59,7 +59,6 @@ module S3MetaSync
59
59
  end
60
60
 
61
61
  def download(source, destination)
62
- raise if @config[:zip]
63
62
  remote_meta = download_meta(source)
64
63
  local_files = ((@config[:no_local_changes] && read_meta(destination)) || meta_data(destination))[:files]
65
64
 
@@ -77,7 +76,7 @@ module S3MetaSync
77
76
  delete_empty_folders(staging_area)
78
77
  store_meta(staging_area, remote_meta)
79
78
 
80
- verify_integrity!(staging_area, destination, remote_meta[:files])
79
+ verify_integrity!(staging_area, destination, download, remote_meta[:files])
81
80
  self.class.swap_in_directory(destination, staging_area)
82
81
  FileUtils.mkdir(staging_area) # mktmpdir tries to remove this directory
83
82
  end
@@ -111,16 +110,15 @@ module S3MetaSync
111
110
  FileUtils.remove_dir(delete)
112
111
  end
113
112
 
114
- def verify_integrity!(staging_area, destination, remote)
115
- actual = meta_data(staging_area)[:files]
113
+ def verify_integrity!(staging_area, destination, changed, remote)
114
+ local = md5_hash(staging_area, changed)
115
+ corrupted = local.select { |file, md5| remote[file] != md5 }.map(&:first)
116
+ return if corrupted.empty?
116
117
 
117
- if remote != actual
118
- corrupted = actual.select { |file, md5| remote[file] && remote[file] != md5 }.map(&:first)
119
- File.write("#{destination}/#{CORRUPT_FILES_LOG}", corrupted.join("\n"))
120
- message = "corrupted files downloaded:\n#{corrupted.join("\n")}"
121
- log message, true
122
- raise RemoteCorrupt, message
123
- end
118
+ File.write("#{destination}/#{CORRUPT_FILES_LOG}", corrupted.join("\n"))
119
+ message = "corrupted files downloaded:\n#{corrupted.join("\n")}"
120
+ log message, true
121
+ raise RemoteCorrupt, message
124
122
  end
125
123
 
126
124
  def consume_corrupted_files(source)
@@ -173,15 +171,18 @@ module S3MetaSync
173
171
 
174
172
  def meta_data(source)
175
173
  return {files: {}} unless File.directory?(source)
176
- files = Dir.chdir(source) do
177
- files = Dir["**/*"].select { |f| File.file?(f) }
178
- Hash[files.map { |file| [file, Digest::MD5.file(file).to_s] }]
179
- end
180
- result = {files: files}
174
+ result = {files: md5_hash(source)}
181
175
  result[:zip] = @config[:zip] if @config[:zip]
182
176
  result
183
177
  end
184
178
 
179
+ def md5_hash(source, files=nil)
180
+ Dir.chdir(source) do
181
+ files ||= Dir["**/*"].select { |f| File.file?(f) }
182
+ Hash[files.map { |file| [file, Digest::MD5.file(file).to_s] }]
183
+ end
184
+ end
185
+
185
186
  def read_meta(source)
186
187
  file = "#{source}/#{META_FILE}"
187
188
  YAML.load(File.read(file)) if File.exist?(file)
@@ -1,3 +1,3 @@
1
1
  module S3MetaSync
2
- VERSION = "0.4.4"
2
+ VERSION = "0.4.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: s3_meta_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
@@ -30,7 +30,7 @@ cert_chain:
30
30
  F5etKHZg0j3eHO31/i2HnswY04lqGImUu6aM5EnijFTB7PPW2KwKKM4+kKDYFdlw
31
31
  /0WV1Ng2/Y6qsHwmqGg2VlYj2h4=
32
32
  -----END CERTIFICATE-----
33
- date: 2014-12-12 00:00:00.000000000 Z
33
+ date: 2014-12-13 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: aws-sdk
metadata.gz.sig CHANGED
Binary file