# File lib/fog/aws/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 => {} }

          params[:query] = options.delete('query') || {}

          if version_id = options.delete('versionId')
            params[:query] = params[:query].merge({'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

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

          request(params.merge!({
            :expects  => [ 200, 206 ],
            :bucket_name => bucket_name,
            :object_name => object_name,
            :idempotent => idempotent,
            :method   => 'GET',
          }))
        end