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



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

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



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

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



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

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

.verify_crc32c!(gcloud_file, local_file) ⇒ Object



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

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



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

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

.verify_md5!(gcloud_file, local_file) ⇒ Object

:nodoc:



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

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