跳到正文

文件 ​

打开服务的 文件 卡片,浏览运行中容器内的文件:打开文件夹、阅读文本文件、下载文件、上传文件、新建文件夹、重命名和删除。

文件浏览器作用于服务最新的运行实例,与 命令 和 终端 卡片使用同一个通道。服务部署并运行后即可使用。

可以做什么 ​

操作方法
浏览点击文件夹,使用列表上方的路径,或者输入路径后点击 前往。列表显示每一项的大小、权限(类似 ls -l)和修改时间;鼠标悬停在权限上可以看到所有者。
阅读点击文件即可显示。文本文件最多显示前 256 KB;二进制文件只能下载。
下载文件旁边的下载按钮,或者查看器中的 下载。文件最大 500 MB。
上传上传,或者把文件拖到列表中。文件会放进你当前查看的文件夹。文件最大 50 MB,一次一个。如果已有同名文件,替换前会询问你。
新建文件夹、重命名新建文件夹,以及每一项旁边的铅笔按钮。重命名不会改变所在的文件夹。
删除垃圾桶按钮,然后点击 删除 确认。删除文件夹会连同其中所有内容一起删除;删除链接不会影响它指向的内容。删除无法撤销。

数据卷与丢失的修改 ​

容器中数据卷以外的文件来自镜像,每次重新部署或重启都会还原。文件浏览器会在列表上方说明这一点,并列出服务的数据卷;在数据卷内部时,会提示修改会被保留。数据卷文件夹在列表中标记为 数据卷。

文件浏览器适合用来检查服务、取出文件,或者把数据放进数据卷。如果要修改数据卷以外的文件并让修改保留,请修改镜像,或者在服务的 设置 标签页中添加配置文件。配置文件以只读方式挂载,所以无法在这里修改。

要求 ​

容器中需要有 shell(sh)和常用的文件工具(cat、stat、mv、rm、mkdir、wc),所有基于 Alpine、BusyBox、Debian 或 Ubuntu 的镜像都有。distroless 或 scratch 这类极简镜像只包含应用本身;对于这类镜像,文件浏览器会提示镜像中没有 shell。文件操作以容器的用户身份运行,所以不以 root 运行的容器可能无法读取或修改某些文件。

谁可以使用 ​

成员、管理员和所有者。观察者完全不能打开文件浏览器,连列出文件都不行,因为文件中可能包含密钥和 .env 文件之类的机密。

上传、下载、新建文件夹、重命名和删除都会记录在团队的审计日志中,包括服务和路径。从不记录文件内容。

工作原理 ​

每个操作都通过控制面以类似 kubectl exec 的方式,在容器中运行一个固定的脚本。路径会被规范化(所以 .. 无法越过 /),并作为独立参数传给脚本,从不拼接进 shell 命令,所以包含空格、引号或 $(…) 的名称都会被当作普通名称处理。上传内容先流式写入目标旁边的临时文件,所有字节到齐后才移动到位;中断的上传不会留下任何东西。下载以附件形式发送,浏览器永远不会把它当作网页打开。

与 Zeabur 无关联。