    # File lib/fog/aws/requests/storage/get_object.rb, line 31
            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-Unmodified-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, 206 ],
                :host     => "#{bucket_name}.#{@host}",
                :idempotent => true,
                :method   => 'GET',
                :path     => CGI.escape(object_name),
              }))
            end