views.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:aeon-ztps 作者: Apstra 项目源码 文件源码
def browse(root):
    """ Lists root, files, and file names in root folder

    Args:
        directory (str): Directory to list files for

    """
    path = os.path.join(_AEON_TOPDIR, root)

    if not os.access(path, os.R_OK):
        flash('Access Denied reading {path}'.format(path=path), 'warning')
        root = '/'

    if root == '/':
        dirnames = []
        for path in valid_paths():
            dirnames.append(path.strip('/'))
        parent = '/'
        filenames = []
        dirpath = '/'
        return render_template('browse.html', dirpath=dirpath, dirnames=dirnames, filenames=filenames, parent=parent)

    folder = os.walk(path).next()
    parent = os.path.join(path, os.pardir).split(_AEON_TOPDIR).pop().strip('/')
    dirpath = folder[0].split(_AEON_TOPDIR).pop().strip('/')
    dirnames = [x.split(_AEON_TOPDIR).pop() for x in folder[1]]
    mime = magic.Magic(mime=True)

    files = []
    for filename in folder[2]:
        f = os.path.join(_AEON_TOPDIR, root, filename)
        # If it's a symlink we want to follow it for accurate stats
        # if os.path.islink(f):
        #     # works for absolute paths
        #     # TODO: fix for relative symlink
        #     f = os.readlink(f)

        stat = os.stat(f)
        mimetype = mime.from_file(f)
        # icon = get_icon(mimetype)
        size = stat.st_size
        mtime = stat.st_mtime
        ctime = stat.st_ctime
        name = filename
        files.append({'name': name, 'size': size, 'mtime': mtime, 'ctime': ctime, 'mimetype': mimetype, 'link': f})

    return render_template('browse.html', dirpath=dirpath, dirnames=dirnames, files=files, parent=parent)


# TODO: constraint to POST or DELETE
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号