GenStudio 全新上架 ComfyUI 工作流托管服务GenStudio 全新上架 ComfyUI 工作流托管服务 ,已适配主流 ckpt 模型与节点了解更多
Skip to content
回到全部文章

在智算云平台上使用 File Browser 管理数据

File Browser 是一个强大的文件管理工具,支持通过 Web 界面轻松管理服务器上的文件。本教程将指导你如何在智算云平台的开发机或 AICoder 上安装和使用 File Browser。

TIP

File Brower 简介

File Browser 提供了直观的 Web 界面,支持上传、删除、预览、重命名文件和文件夹等操作,可极大方便大家上传和管理大文件和文件夹。

alt text

安装 File Browser

一键安装

如果能熟练解决科学上网问题,可使用以下一键安装脚本。

curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash

手动安装(适合国内网络环境)

你也可以使用我们适配了国内网络环境的安装脚本。

  1. 新建安装脚本。

    bash
    vim get.sh
  2. 将以下内容粘贴到 vim 编辑器中。

    • 进入粘贴模式::set paste(这可以防止自动缩进和格式化,保持脚本原有格式)
    • i 进入插入模式
    • 粘贴脚本内容
    • Esc 退出插入模式
    • 关闭粘贴模式::set nopaste
    • 保存并退出::wq

    待复制 get.sh 脚本内容如下:

    shell
    #!/usr/bin/env bash
    #
    #           File Browser Installer Script for AMD64 Linux
    #
    #   GitHub: https://github.com/filebrowser/filebrowser
    #   Issues: https://github.com/filebrowser/filebrowser/issues
    #   Requires: bash, mv, rm, type, curl/wget, tar
    #
    #   This script installs File Browser v2.30.0 to your path on AMD64 Linux.
    #   Usage:
    #
    #   	$ bash <(curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh)
    #   	  or
    #   	$ bash <(wget -qO- https://raw.githubusercontent.com/filebrowser/get/master/get.sh)
    #
    #   In automated environments, you may want to run as root.
    
    install_filemanager()
    {
      trap 'echo -e "Aborted, error $? in command: $BASH_COMMAND"; trap ERR; return 1' ERR
      install_path="/usr/local/bin"
    
      # Fall back to /usr/bin if necessary
      if [[ ! -d $install_path ]]; then
        install_path="/usr/bin"
      fi
    
      # Check if sudo is needed
      ((EUID)) && sudo_cmd="sudo"
    
      filemanager_bin="filebrowser"
      filemanager_os="linux"
      filemanager_arch="amd64"
      filemanager_tag="v2.30.0"
      ghproxy="https://mirror.ghproxy.com/"
    
      ########################
      # Download and extract #
      ########################
    
      echo "Downloading File Browser $filemanager_tag for $filemanager_os/$filemanager_arch..."
      filemanager_file="${filemanager_os}-${filemanager_arch}-filebrowser.tar.gz"
      filemanager_url="${ghproxy}https://github.com/filebrowser/filebrowser/releases/download/${filemanager_tag}/${filemanager_file}"
      echo "Download URL: $filemanager_url"
    
      if type -p curl >/dev/null 2>&1; then
        curl -L --progress-bar "$filemanager_url" -o "/tmp/$filemanager_file"
      elif type -p wget >/dev/null 2>&1; then
        wget --show-progress -q "$filemanager_url" -O "/tmp/$filemanager_file"
      else
        echo "Aborted, could not find curl or wget"
        return 7
      fi
    
      echo "Extracting..."
      tar -xzf "/tmp/$filemanager_file" -C "/tmp/" "$filemanager_bin"
      chmod +x "/tmp/$filemanager_bin"
    
      echo "Installing File Browser to $install_path (may require password)"
      $sudo_cmd mv "/tmp/$filemanager_bin" "$install_path/$filemanager_bin"
      if setcap_cmd=$(PATH+=$PATH:/sbin type -p setcap); then
        $sudo_cmd $setcap_cmd cap_net_bind_service=+ep "$install_path/$filemanager_bin"
      fi
      $sudo_cmd rm -- "/tmp/$filemanager_file"
    
      if type -p $filemanager_bin >/dev/null 2>&1; then
        echo "Successfully installed File Browser $filemanager_tag"
        trap ERR
        return 0
      else
        echo "Something went wrong, File Browser is not in your path"
        trap ERR
        return 1
      fi
    }
    
    install_filemanager

    NOTE

    粘贴大段代码到 vim 时,使用 :set paste 非常重要。它可以防止 vim 的自动缩进和其他格式化功能,确保脚本保持原有的格式和缩进。这对于 shell 脚本尤其重要,因为不正确的缩进可能导致脚本无法正常运行。

  3. 给脚本添加执行权限。

    bash
    chmod +x get.sh
  4. 安装 File Browser。

    bash
    bash get.sh

启动 File Browser 服务

File Browser 主命令为 filebrowser,格式如下,默认会占用 8080 端口。

bash
filebrowser -r /path/to/your/files

例如,让 FileBrowser 服务托管 Ubuntu 服务器上所有用户的主目录(/home)目录

bash
filebrowser -r /home

例如,让 FileBrowser 服务托管 Ubuntu 服务器上 Jane Doe 的主目录(/home/janedoe)。

bash
filebrowser -r /home/janedoe

例如,让 FileBrowser 服务托管 / 目录,使用非默认端口 8089

bash
filebrowser -r / --port 8089

使用 tmux 启动 File Browser 服务

上面的启动方式无法在退出 SSH 会话后保持 File Browser 服务持续运行。为了让 File Browser 在退出 SSH 会话后继续运行,可以使用 tmux:

  1. 创建名为 filebrowser 的新 tmux 会话:

    bash
    tmux new -s filebrowser
  2. 在 tmux 会话中启动 File Browser:

    bash
    filebrowser -r / --port 8089
  3. 分离 tmux 会话(保持服务在后台运行):按 Ctrl+B,然后按 D

    现在,即使关闭 SSH 连接,File Browser 也会继续运行。

在需要重新进入到运行 filebrowser 的会话时,执行以下操作:

  1. 查看现有的 tmux 会话:

    bash
    tmux ls
  2. 重新连接到 File Browser 会话:

    bash
    tmux attach -t filebrowser

通过上述 tmux 命令,你可以:

  • 创建一个新的 tmux 会话并在其中运行 File Browser
  • 分离会话,使 File Browser 在后台继续运行
  • 列出所有正在运行的 tmux 会话
  • 重新连接到 File Browser 会话以查看或管理服务

在本地访问 File Brower 界面

为了在本地访问开发机或 AICoder 内部运行的 File Brower 服务,我们还需要在本地计算机上完成端口转发设置。

NOTE

请提前确保本地计算机可 SSH 远程登录开发机或 AICoder。

假设用户 Jane Doe 设置了 FileBrowser 服务托管 / 目录,使用非默认端口 8089,如何在本地访问 FileBrowser 的 Web 界面呢?

首先,我们需要获取开发机或 AICoder 的 SSH 登录信息。

开发机

登录智算云平台,获取开发机的 SSH 服务的公网 IP 地址,登录用户名,和 SSH 服务端口号。

alt text

在本地计算机上,设置 SSH 本地端口转发。

bash
ssh -N -f -L 5009:127.0.0.1:8089 -p 43500 root@219.135.228.245

在上述命令中,部分示例值需要替换为你的开发机的对应实际值:

  • 5009:这是在本地设备上访问 File Browser 服务的端口号,可保持不变。
  • 8089:这是开发机内部 File Brower 服务监听的端口号,可保持不变。
  • 43500:登录开发机的 SSH 登录端口号,必须改为实际值。请登录云平台,从开发机的 SSH 连接命令中获取。
  • root:默认 SSH 登录用户名(部分旧版实例展示为非 root 普通用户名,请重启)。
  • 219.135.228.245:开发机的 SSH 服务的 IP 地址,必须改为实际值。请登录云平台,从开发机的 SSH 连接命令中获取。

NOTE

上面使用了 SSH -L 的方式设置了端口转发。如需了解更多细节,可参考教程SSH 端口转发:公网访问开发机内 HTTP 服务

AICoder

登录智算云平台,打开 AICoder Shell,获取 AICoder 的 SSH Jumper 服务地址,登录用户名,和 AICoder ID。

alt text

在本地计算机上,设置 SSH 本地端口转发。

bash
ssh -L 5009:127.0.0.1:8089 -N -f -J ssh-jumper.cloud.infini-ai.com root@aic-c7lkg5b23mieqw7d

在上述命令中,部分示例值需要替换为你的 AICoder 的对应实际值:

  • 5009:这是在本地设备上访问 File Browser 服务的端口号,可保持不变。
  • 127.0.0.1:8089:这是 AICoder 内部 File Brower 服务监听的地址和端口号,可保持不变。
  • ssh-jumper.cloud.infini-ai.com: SSH 跳板机,固定不变。
  • root:默认 SSH 登录用户名(部分旧版实例展示为非 root 普通用户名,请重启)。
  • aic-c7lkg5b23mieqw7d:AICoder ID,必须改为实际值。请登录云平台,从 AICoder 的 SSH 连接命令中获取前缀为 aic- 的字符串。

NOTE

安全起见,AICoder 不会直接向公网暴露访问地址。我们提供了一种 SSH 跳转机(ssh-jumper.cloud.infini-ai.com)中转的解决方案。如果遇到 SSH 连接问题,可参考 AICoder 文档 在本地连接到 AICoder Shell

首次登录

在浏览器中打开 http://localhost:5009 即可访问 FileBrowser 的 Web 界面(5009 是上一步中指定的端口号)。

使用以下默认凭据:

  • 用户名:admin
  • 密码:admin

登录后,请立即更改默认密码以确保安全。

修改默认语言

在浏览器中打开 http://localhost:5009/settings/profile,可将 File Browser 的默认语言改为简体中文,然后点击更新

alt text

终止 SSH 端口转发

当你不再需要访问 File Browser 服务时,应该终止 SSH 端口转发连接。这可以通过以下步骤完成:

  1. 找到 SSH

    bash
    ps aux | grep "ssh -N -f -L"

    或者对于 AICoder:

    bash
    ps aux | grep "ssh -L.*-N -f -J"
  2. 你会看到类似这样的输出:

    user    1234  0.0  0.0  42532   784 ?        Ss   10:00   0:00 ssh -N -f -L 5009:127.0.0.1:8089 -p 43500 root@219.135.228.245
  3. 记下进程 ID(PID),这里是 1234。

  4. 终止该进程:

    bash
    kill 1234

    替换 1234 为你在第 2 步中看到的实际 PID。

通过这些步骤,你可以安全地关闭 SSH 端口转发连接。当你再次需要访问 File Browser 服务时,只需重新执行之前的 SSH 端口转发命令。

注意事项

  1. 请确保你有权限访问和管理指定的目录。
  2. 定期备份重要数据。
  3. 不要在公共网络上暴露 File Browser,始终通过 SSH 隧道访问。
  4. 及时更新 File Browser 以获得最新的功能和安全修复。

通过使用 File Browser,可以更高效地管理智算云平台上的文件,无需记忆复杂的命令行操作。希望本教程能帮你充分利用这个强大的工具!