全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

一致性校验(check)

最近更新时间:2026-10-08 14:10:48

check 命令用于在数据迁移完成后校验源端与目标端文件的一致性,默认仅比对对象元数据与文件大小,不下载数据,仅显式开启严格校验模式时才会读取数据流计算校验值。

本文所述功能需 2.18.0 及以上版本支持,如您的版本较低,请升级后使用。

支持的校验类型

check 命令支持以下五种校验类型:

校验类型

命令形态

适用场景

本地上传到 KS3

./ks3util check local_dir ks3://bucket

本地上传至 KS3 后校验

KS3 下载到本地

./ks3util check ks3://bucket local_dir

从 KS3 下载至本地后校验

KS3 迁移到 KS3

./ks3util check ks3://src-bucket ks3://dst-bucket

KS3 桶间复制后校验,支持跨区域、跨账号

其他云存储迁移到 KS3

./ks3util check s3://bucket ks3://bucket

从 OSS、COS、TOS、OBS 等 S3 兼容源站迁移后校验

指定 URL 列表迁移到 KS3

./ks3util check --url-file url_list.txt ks3://bucket

通过 URL 清单逐条校验迁移结果

校验原理与降级流程

check 命令按以下顺序逐级校验:

  1. 存在性校验:校验源端与目标端文件是否都存在,任一端不存在则记为失败。

  2. 大小校验:校验两端文件大小是否一致,不一致则记为失败。

  3. CRC64 校验:若两端都携带 CRC64 校验值则直接对比,一致则记为成功;缺值时进入下一级。

  4. MD5 校验:若两端都携带 MD5 校验值则直接对比,一致则记为成功;缺值时进入下一级。

  5. 默认模式:大小一致但缺少可对比的 CRC64/MD5 时,记为成功,不下载任何数据。

  6. 严格校验模式(--enable-strict-check):当缺少校验值时,读取数据流计算校验值后完成对比。

校验结果输出

校验完成后,控制台输出汇总统计:

  • 成功数:校验通过的文件数(含成功字节数)。

  • 失败数:拆分为"不存在""校验值不一致""其他错误"三类。

  • 跳过数:源端为目录的条目计为跳过,不影响普通文件的校验。

如需导出完整明细,使用 --output-check-result 选项生成 CSV 文件,各字段含义:

字段

说明

src_file / dst_file

源端路径 / 目标端路径

src_size / dst_size

源端大小 / 目标端大小

src_checksum / dst_checksum

源端校验值 / 目标端校验值

src_checksum_source / dst_checksum_source

校验值来源,stream 为读取数据计算,header 为从元数据读取

status

校验状态:success / fail / skip

method

校验方法:exist / size / crc64 / md5

message

结果描述或失败原因

命令格式

./ks3util check src_url dst_url
[-r, --recursive]
[-j, --jobs <value>]
[--output-check-result]
[--output-dir <value>]
[--enable-strict-check]
[--sample-rate <value>]
[-f, --force]
[--bandwidth-limit <value>]
[--profile <value>]
[--url-file <value>]
[--only-current-dir]
[--enable-symlink-dir]

参数说明

参数

说明

-r, --recursive

递归进行操作。当指定该选项时,会对目录下所有符合条件的文件进行操作,否则只对路径指定的单个文件进行操作。

-j, --jobs

文件校验并发数,默认值:5,取值范围:1-10000。

--output-check-result

输出校验结果明细。默认仅输出成功与失败的文件数量;启用后会将每个文件的校验结果逐条写入 CSV 文件。

--output-dir

输出文件的保存目录,默认为工具当前执行目录下的 ks3util_output 目录。

--enable-strict-check

使用严格校验模式。默认情况下,若文件缺少 crc64 或 md5 校验值,则会比较文件大小;启用该参数后,会下载文件数据流,计算校验值来完成校验。

--sample-rate

抽样校验比例,取值 1–100 的整数,按该百分比随机抽取文件进行校验,未设置时默认对所有文件校验。

-f, --force

强制执行,跳过严格校验模式的确认提示。

--bandwidth-limit

客户端带宽限速,用于限制严格校验模式下载文件的速度。格式为:值+单位,默认单位为 B(Byte),可选单位 B、KB、MB、GB。例如 100MB 表示限速 100MB/s。

--profile

指定使用的配置 profile,跨账号、跨云两端凭证不同时可用 src,dst 双配置分别指定。

--url-file

待校验的 HTTP URL 列表文件,每行一个 URL。仅用于 URL 列表迁移到 KS3 的校验。

--only-current-dir

仅操作当前目录下的文件,忽略子目录。

--enable-symlink-dir

校验软链接子目录指向的源文件。

使用示例

本地上传到 KS3

将本地文件或目录上传至 KS3 后,校验本地源文件与 KS3 目标对象的一致性。源端为本地文件系统,目标端为 KS3 对象。

准备:配置目标端 KS3 的访问凭证(用 config 命令配置默认 profile 即可)。

./ks3util config

递归校验本地 local_dir/ 目录与 KS3 桶 samplebucket 的 data/ 前缀下对象的一致性。

./ks3util check local_dir/ ks3://samplebucket/data/ -r

递归校验并输出校验报告。

./ks3util check local_dir/ ks3://samplebucket/data/ -r --output-check-result

KS3 下载到本地

从 KS3 下载文件或目录到本地后,校验 KS3 源对象与本地目标文件的一致性。源端为 KS3 对象,目标端为本地文件系统。

准备:配置源端 KS3 的访问凭证(用 config 命令配置默认 profile 即可)。

./ks3util config

递归校验 KS3 桶 samplebucket 的 data/ 前缀下对象与本地 local_dir/ 目录的一致性。

./ks3util check ks3://samplebucket/data/ local_dir/ -r

递归校验并输出校验报告。

./ks3util check ks3://samplebucket/data/ local_dir/ -r --output-check-result

KS3 迁移到 KS3

在 KS3 桶间复制对象后,校验源桶与目标桶对象的一致性。源端与目标端均为 KS3 对象,支持跨区域、跨账号复制后的校验。

准备:同账号同区域配置默认 profile 即可;跨账号需分别为源端、目标端配置访问凭证。建立源端配置 src。

./ks3util config profile src

输出示例:

配置文件不存在,初始化配置:
    文件路径:/home/user/.ks3utilconfig

对于以下配置,回车将跳过该配置项的设置:
请输入accessKeyID:srcAK
请输入accessKeySecret:srcSK
请输入endpoint [ks3-cn-beijing.ksyuncs.com]:ks3-cn-beijing.ksyuncs.com

配置文件初始化成功。

再建立目标端配置 dst(流程同上,配置名输入 dst,填入目标端凭证)。

./ks3util config profile dst

同账号同区域,递归校验源桶 src-bucket 与目标桶 dst-bucket 的 data/ 前缀下对象的一致性。

./ks3util check ks3://src-bucket/data/ ks3://dst-bucket/data/ -r

跨账号,递归校验并输出校验报告,用 --profile src,dst 指定两端凭证。

./ks3util check ks3://src-bucket/data/ ks3://dst-bucket/data/ -r --profile src,dst --output-check-result

其他云存储迁移到 KS3

将其他云存储(如 OSS、COS、TOS、OBS 等 S3 兼容源站)的对象迁移到 KS3 后,校验源站对象与 KS3 目标对象的一致性。源端以 s3:// 为前缀,目标端以 ks3:// 为前缀。

准备:S3 兼容源站与 KS3 目标分属不同凭证,需分别为两端配置访问凭证。建立源端配置 src(endpoint 填 S3 源站域名)。

./ks3util config profile src

输出示例:

配置文件不存在,初始化配置:
    文件路径:/home/user/.ks3utilconfig

对于以下配置,回车将跳过该配置项的设置:
请输入accessKeyID:srcAK
请输入accessKeySecret:srcSK
请输入endpoint [ks3-cn-beijing.ksyuncs.com]:s3.example.com

配置文件初始化成功。

再建立目标端配置 dst(流程同上,配置名输入 dst,endpoint 填 KS3 域名)。

./ks3util config profile dst

递归校验 S3 兼容源站 src-bucket 与 KS3 桶 dst-bucket 的 data/ 前缀下对象的一致性,用 --profile src,dst 指定两端凭证。

./ks3util check s3://src-bucket/data/ ks3://dst-bucket/data/ -r --profile src,dst

递归校验并输出校验报告。

./ks3util check s3://src-bucket/data/ ks3://dst-bucket/data/ -r --profile src,dst --output-check-result

指定 URL 列表迁移到 KS3

通过 URL 清单(每行一个 HTTP/HTTPS URL)将文件迁移到 KS3 后,按清单逐条校验迁移结果。源端为 URL 列表,目标端以 ks3:// 为前缀。

准备:配置目标端 KS3 的访问凭证(用 config 命令配置默认 profile 即可)。

./ks3util config

按 URL 清单 url_list.txt 校验迁移到 KS3 桶 samplebucket 的对象的一致性。

./ks3util check --url-file url_list.txt ks3://samplebucket/

校验并输出校验报告。

./ks3util check --url-file url_list.txt ks3://samplebucket/ --output-check-result

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈