📣TiDB Cloud BYOC、TiDB Cloud Filesystem 和 PostgreSQL-compatible TiDB Cloud Starter 全新发布,开放公测中。此页面由 AI 自动翻译,英文原文请见此处。

在 TiDB Cloud Filesystem 中使用文件和目录



在 TiDB Cloud Filesystem 中,你可以在 TiDB Cloud 控制台中浏览文件和目录元信息,也可以使用 TiDB Cloud CLI (ti) 在不挂载文件系统的情况下上传、下载、读取、组织和搜索文件。有关所有命令和选项,请参见 ti fs 参考文档。

如果你将挂载文件系统到本地机器,则可以像使用本地文件系统一样操作文件和目录。

前提条件

以下前提条件适用于 CLI 操作。如果你只需要在 TiDB Cloud 控制台中浏览文件元信息,请参见查看文件。

查看文件

你可以使用 TiDB Cloud 控制台或 TiDB Cloud CLI 浏览文件和目录并查看其元信息。

    1. 在 TiDB Cloud 控制台中,进入你所在组织的 File Systems 页面,选择云服务提供商和 region,然后点击目标文件系统的名称。
    2. 在左侧导航栏中,点击 Files。该页面会列出目录和文件,以及它们的类型、大小和修改时间。
    3. 展开目录以浏览其内容,使用 Search 过滤当前可见的文件树,或点击文件名查看其元信息。

    控制台会显示文件元信息。若要读取文件内容或更改文件和目录,请使用 CLI 命令或挂载文件系统。

    列出目录内容:

    ti fs list-files --path /reports --output text

    输出示例:

    NAME TYPE SIZE MTIME archive dir 0 0 report.md file 23 0

    查看文件或目录的元信息:

    ti fs describe-file --path /reports/report.md

    上传和下载文件

    将本地文件上传到文件系统:

    ti fs copy-file \ --from-local ./report.md \ --to-remote /reports/report.md

    从文件系统下载文件:

    ti fs copy-file \ --from-remote /reports/report.md \ --to-local ./downloads/report.md \ --create-parents

    你还可以使用 copy-file 在文件系统内部复制文件或目录、通过标准输入或标准输出传输数据、向文件追加内容,或恢复中断的传输。

    如需递归复制目录,请使用 --recursive。有关所有支持的复制操作和选项,请参见 copy-file 参考文档。

    读取文件

    读取文件的完整内容:

    ti fs read-file --path /reports/report.md

    该命令会将文件内容直接写入标准输出,而不会将其包装为 JSON。

    如果只想读取文件的一部分,请使用 --offset 和 --length。例如,以下命令读取前 1024 字节:

    ti fs read-file \ --path /reports/report.md \ --offset 0 \ --length 1024

    组织文件和目录

    创建目录:

    ti fs create-directory --path /reports/archive

    将文件移动到另一路径:

    ti fs move-file \ --from-remote /draft.md \ --to-remote /reports/final.md

    删除文件或目录:

    ti fs delete-file --path /scratch --recursive

    对于需要 POSIX 风格元信息或链接的工作流,你还可以使用 chmod-file、create-symlink 和 create-hardlink。

    搜索文件和内容

    使用 search-file-content 按内容查找文件:

    ti fs search-file-content \ --path /reports \ --pattern "TODO"

    --pattern 是文本查询,不是正则表达式或 glob 模式。使用 --limit 可以控制返回结果的最大数量。

    详情请参见 search-file-content 参考文档。

    如果你了解的是文件本身的信息而不是其内容,请使用 find-files。你可以按文件名、类型、标签、大小或修改时间进行过滤。

    例如,查找带有 stage=review 标签的 Markdown 文件:

    ti fs find-files \ --path /reports \ --file-name-pattern "*.md" \ --tag stage=review

    标签是在上传文件时通过 copy-file --tag key=value 设置的。对于同一路径,如果你在后续上传时再次提供 --tag,则会替换之前的标签,而不是在其基础上追加。

    结果会列出匹配的路径。空表表示没有匹配项,而不是命令执行失败。

    有关所有可用过滤条件,请参见 find-files 参考文档。

    在脚本中使用命令输出

    在使用命令输出之前,请先检查退出状态。read-file 和 copy-file --to-stdout 输出的是文件内容流,而不是 CLI 元信息。捕获这些内容时,请将 stderr 与其分开。

    在 ti v0.2.6 和 v0.2.7 中,create-directory 即使在使用 --output json 时,也可能会在 JSON 结果之前输出一行 created ...。因此,它的输出无法作为单个 JSON 文档进行解析。请先检查退出状态,然后使用 describe-file 或 list-files 验证目录。在脚本中依赖其输出格式之前,请先检查你已安装版本的实际输出格式。

    后续操作

    文档内容是否有帮助?