# File lib/fog/google/requests/storage/get_object.rb, line 28
        def get_object(bucket_name, object_name, options = {}, &block)
          unless bucket_name
            raise ArgumentError.new('bucket_name is required')
          end
          unless object_name
            raise ArgumentError.new('object_name is required')
          end

          params = { :headers => {} }
          if version_id = options.delete('versionId')
            params[:query] = {'versionId' => version_id}
          end
          params[:headers].merge!(options)
          if options['If-Modified-Since']
            params[:headers]['If-Modified-Since'] = Fog::Time.at(options['If-Modified-Since'].to_i).to_date_header
          end
          if options['If-Modified-Since']
            params[:headers]['If-Unmodified-Since'] = Fog::Time.at(options['If-Unmodified-Since'].to_i).to_date_header
          end

          if block_given?
            params[:response_block] = Proc.new
          end

          request(params.merge!({
            :expects        => 200,
            :host           => "#{bucket_name}.#{@host}",
            :idempotent     => true,
            :method         => 'GET',
            :path           => CGI.escape(object_name),
          }))
        end