# File lib/aws/glacier/archive_collection.rb, line 102
      def compute_checksums data

        digest = OpenSSL::Digest.new('sha256')
        tree_digest = OpenSSL::Digest.new('sha256')
        tree_parts = []

        until data.eof?

          chunk = data.read(1024 * 1024) # read 1MB
          tree_parts << tree_digest.update(chunk).digest
          tree_digest.reset

          digest.update(chunk)

        end

        data.rewind

        [digest.to_s, compute_tree_hash(tree_parts)]

      end