# File lib/aws/s3/paginated_collection.rb, line 31
      def each_page(options = {}, &block)
        opts = list_options(options)
        limit = options[:limit]
        batch_size = options[:batch_size] || 1000
        markers = {}
        received = 0

        loop do
          page_opts = opts.dup
          page_opts.merge!(markers)
          page_opts[limit_param] =
            limit ? [limit - received, batch_size].min : batch_size

          page = list_request(page_opts)
          markers = next_markers(page)
          received += page_size(page)

          yield(page)

          return unless page.truncated?
        end
      end