def generate_temp_url(path, seconds, key, method, absolute=False):
    if seconds < 0:
        raise ValueError('seconds must be a positive integer')
    try:
        if not absolute:
            expiration = int(time.time() + seconds)
        else:
            expiration = int(seconds)
    except TypeError:
        raise TypeError('seconds must be an integer')

    standard_methods = ['GET', 'PUT', 'HEAD', 'POST', 'DELETE']
    if method.upper() not in standard_methods:
        logger = logging.getLogger("swiftclient")
        logger.warning('Non default HTTP method %s for tempurl specified, '
                       'possibly an error', method.upper())

    hmac_body = '\n'.join([method.upper(), str(expiration), path])

    # Encode to UTF-8 for py3 compatibility
    sig = hmac.new(key.encode(),
                   hmac_body.encode(),
                   hashlib.sha1).hexdigest()

    return ('{path}?temp_url_sig='
            '{sig}&temp_url_expires={exp}'.format(
                path=path,
                sig=sig,
                exp=expiration))
Generates a temporary URL that gives unauthenticated access to the
dataset/ETHPy150Open openstack/python-swiftclient/swiftclient/utils.py/generate_temp_url