diff --git a/lib/fog/storage/google_json/requests/get_object.rb b/lib/fog/storage/google_json/requests/get_object.rb index 39e9d025e..21e21b137 100644 --- a/lib/fog/storage/google_json/requests/get_object.rb +++ b/lib/fog/storage/google_json/requests/get_object.rb @@ -39,6 +39,7 @@ def get_object(bucket_name, object_name, raise ArgumentError.new("object_name is required") unless object_name buf = Tempfile.new("fog-google-storage-temp") + buf.unlink # Two requests are necessary, first for metadata, then for content. # google-api-ruby-client doesn't allow fetching both metadata and content @@ -57,14 +58,15 @@ def get_object(bucket_name, object_name, @storage_json.get_object( bucket_name, object_name, - **all_opts.merge(:download_dest => buf.path) + **all_opts.merge(:download_dest => buf) ) + buf.seek(0) + if block_given? yield buf.read, nil, nil else object[:body] = buf.read - buf.unlink end object