Skip to content
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 20 additions & 10 deletions google-cloud-storage/lib/google/cloud/storage/file/verifier.rb
Original file line number Diff line number Diff line change
Expand Up @@ -55,11 +55,16 @@ def self.md5_for local_file
::Digest::MD5.file(f).base64digest
end
else # StringIO
(local_file = ::File.open Pathname(local_file)) unless local_file.respond_to? :rewind
local_file.rewind
md5 = ::Digest::MD5.base64digest local_file.read
local_file.rewind
md5
file_to_close = nil
file_to_close = local_file = ::File.open(Pathname(local_file).to_path, "rb") unless local_file.respond_to?(:rewind)
begin
local_file.rewind
md5 = ::Digest::MD5.base64digest local_file.read
local_file.rewind
md5
ensure
file_to_close.close if file_to_close.respond_to?(:close) && !file_to_close.closed?
end
end
end

Expand All @@ -69,11 +74,16 @@ def self.crc32c_for local_file
::Digest::CRC32c.file(f).base64digest
end
else # StringIO
(local_file = ::File.open Pathname(local_file)) unless local_file.respond_to? :rewind
local_file.rewind
crc32c = ::Digest::CRC32c.base64digest local_file.read
local_file.rewind
crc32c
file_to_close = nil
file_to_close = local_file = ::File.open(Pathname(local_file).to_path, "rb") unless local_file.respond_to?(:rewind)
begin
local_file.rewind
crc32c = ::Digest::CRC32c.base64digest local_file.read
local_file.rewind
crc32c
ensure
file_to_close.close if file_to_close.respond_to?(:close) && !file_to_close.closed?
end
end
end
end
Expand Down