Module: Gcloud::Storage::File::Verifier

Defined in:
lib/gcloud/storage/file/verifier.rb

Overview

Verifies downloaded files by creating an MD5 or CRC32c hash digest and comparing the value to the one from the Storage API.

Class Method Summary collapse

Class Method Details

.crc32c_for(local_file) ⇒ Object



57
58
59
60
61
# File 'lib/gcloud/storage/file/verifier.rb', line 57

def self.crc32c_for local_file
  ::File.open(Pathname(local_file).to_path, "rb") do |f|
    ::Digest::CRC32c.base64digest f.read
  end
end

.md5_for(local_file) ⇒ Object



51
52
53
54
55
# File 'lib/gcloud/storage/file/verifier.rb', line 51

def self.md5_for local_file
  ::File.open(Pathname(local_file).to_path, "rb") do |f|
    ::Digest::MD5.base64digest f.read
  end
end

.verify_crc32c(gcloud_file, local_file) ⇒ Object



47
48
49
# File 'lib/gcloud/storage/file/verifier.rb', line 47

def self.verify_crc32c gcloud_file, local_file
  gcloud_file.crc32c == crc32c_for(local_file)
end

.verify_crc32c!(gcloud_file, local_file) ⇒ Object



35
36
37
38
39
40
41
# File 'lib/gcloud/storage/file/verifier.rb', line 35

def self.verify_crc32c! gcloud_file, local_file
  gcloud_digest = gcloud_file.crc32c
  local_digest = crc32c_for local_file
  if gcloud_digest != local_digest
    fail FileVerificationError.for_md5(gcloud_digest, local_digest)
  end
end

.verify_md5(gcloud_file, local_file) ⇒ Object



43
44
45
# File 'lib/gcloud/storage/file/verifier.rb', line 43

def self.verify_md5 gcloud_file, local_file
  gcloud_file.md5 == md5_for(local_file)
end

.verify_md5!(gcloud_file, local_file) ⇒ Object

:nodoc:



27
28
29
30
31
32
33
# File 'lib/gcloud/storage/file/verifier.rb', line 27

def self.verify_md5! gcloud_file, local_file
  gcloud_digest = gcloud_file.md5
  local_digest = md5_for local_file
  if gcloud_digest != local_digest
    fail FileVerificationError.for_md5(gcloud_digest, local_digest)
  end
end