# File lib/aws/s3/object_collection.rb, line 206
      def delete_if &block

        error_counts = {}

        batch_helper = BatchHelper.new(1000) do |objects|
          begin
            delete(objects)
          rescue Errors::BatchDeleteError => error
            error.error_counts.each_pair do |code,count|
              error_counts[code] ||= 0
              error_counts[code] += count
            end
          end
        end

        each do |object|
          batch_helper.add(object) if yield(object)
        end

        batch_helper.complete!

        raise Errors::BatchDeleteError.new(error_counts) unless
          error_counts.empty?

        nil

      end