'Create a unique filename for a given server url and
handle. This implementation does not assume anything about the
format of the handle. The filename that is returned will
contain the domain name from the server URL for ease of human
inspection of the data directory.
(str, str) -> str'

def getAssociationFilename(self, server_url, handle):

    if (server_url.find('://') == (-1)):
        raise ValueError(('Bad    server    URL:    %r' % server_url))
    (proto, rest) = server_url.split('://', 1)
    domain = _filenameEscape(rest.split('/', 1)[0])
    url_hash = _safe64(server_url)
    if handle:
        handle_hash = _safe64(handle)
    else:
        handle_hash = ''
    filename = ('%s-%s-%s-%s' % (proto, domain, url_hash, handle_hash))
    return os.path.join(self.association_dir, filename)
