You need to enable JavaScript to run this app.
导航
复制本地文件(fcp)
最近更新时间:2024.04.17 16:11:39首次发布时间:2023.12.18 17:45:22

您可以通过 fcp 命令,将本地文件或文件夹从源端复制到目标端。

命令语法

  • 复制单个文件
./tosutil fcp file_url1 file_url2|folder_url2 [-dryRun] [-link] [-tempFileDir=xxx] [-useTempFile] [-u] [-vchecksum] [-dfo] [-fsync] [-rbs=1MB] [-wbs=1MB] [-rdio] [-rmmap] [-wdio] [-wmmap] [-ea=xxx] [-sdk=xxx] [-dek=xxx] [-fr] [-o=xxx]
  • 复制文件夹
./tosutil fcp fold_url1 fold_url2 -r [-dryRun] [-link] [-tempFileDir=xxx] [-useTempFile] [-u] [-vchecksum] [-dfo] [-fsync] [-rbs=1MB] [-wbs=1MB] [-rdio] [-rmmap] [-wdio] [-wmmap] [-ea=xxx] [-sdk=xxx] [-dek=xxx] [-flat] [-j=1] [-nfj=1] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-at] [-dmf] [-o=xxx]
  • 恢复执行失败的任务
./tosutil fcp -recover=xxx [-dryRun] [-link] [-tempFileDir=xxx] [-useTempFile] [-u] [-vchecksum] [-dtf] [-dfo] [-fsync] [-rbs=1MB] [-wbs=1MB] [-rdio] [-rmmap] [-wdio] [-wmmap] [-ea=xxx] [-sdk=xxx] [-dek=xxx] [-j=1] [-nfj=1] [-include=*.xxx] [-exclude=*.xxx] [-timeRange=time1-time2] [-at] [-dmf] [-o=xxx]
  • 测试单个本地文件的读或者写
./tosutil fcp file_url -dt=xxx [-ds=10MB] [-link] [-tempFileDir=xxx] [-useTempFile] [-dfo] [-fsync] [-rbs=1MB] [-wbs=1MB] [-rdio] [-wdio] [-wmmap]

参数说明

参数名

参数类型

描述

file_url1
folder_url1

String

本地源文件/文件夹路径,当为源文件夹时需要 与 -r 参数配合使用。

file_url2
folder_url2

String

本地目标文件/文件夹路径。

-r

Bool

递归复制文件夹。

-dryRun

Bool

测试模式运行,不执行实际的操作。

-link

Bool

复制软链接文件/文件夹指向的真实路径。

-tempFileDir

String

复制时保存临时文件的文件夹,默认与待复制文件同父文件夹。

-useTempFile

Bool

复制时先写临时文件再重命名为最终文件。

-recover

String

待恢复复制任务的结果清单文件任务号。

-u

Bool

增量复制文件,设置该参数后,会比较源端和目标端,建议您在以下情况下使用:

  • 目标端不存在。
  • 目标端与源端的文件大小不一致。
  • 目标端的最后修改时间早于源端的最后修改时间时进行执行对应的操作。

-vchecksum

Bool

复制时通过 CRC64 算法验证数据一致性。

-dfo

Bool

在 Linux/MacOs 操作系统上执行复制时,如果本地可执行文件正在运行,则不进行强制覆盖。

-fsync

Bool

复制时使用 fsync 同步刷盘。

-rbs

String

读源端的缓冲区大小,单位:字节,默认为配置文件中的 readBufferIoSize

-wbs

String

写目标端的缓冲区大小,单位:字节,默认为配置文件中的 writeBufferIoSize

-rdio

Bool

在 Linux/MacOs 操作系统上,读源端时使用 direct io。

-rmmp

Bool

在 Linux/MacOs 操作系统上,读源端时使用 mmap。

-wdio

Bool

在 Linux/MacOs 操作系统上,写目标端时使用 direct io。

-wmmp

Bool

在 Linux/MacOs 操作系统上,写目标端时使用 mmap,设置该值时会忽略 useTempFile 选项。

-ea

String

复制时用于加解密本地文件的算法,支持的值如下:

  • aes256

说明

当前使用 aes256 + CTR 模式的加密算法。

-eam

String

复制时用于加解密本地文件的算法模式。支持的值如下:

  • CTR
  • CBC

默认为 CTR。

-sdk

String

复制时解密源端的密钥,当解密算法为 aes256 时,长度必须为 32 位

-dek

String

复制时加密目标端的密钥,当加密算法为 aes256 时,长度必须为 32 位

-flat

Bool

复制文件时不包含相对父目录。

-j

Integer

批量任务的最大并发数,默认为配置文件中的 defaultJobs,默认值为 1。

-nfj

Integer

批量任务的处理小文件(小于 1MB)的最大并发数。

-include

String

复制时对包含文件的名称匹配模式,支持 ?* 作为通配符以及 # 作为分隔符。

-exclude

String

复制时对不包含文件的名称匹配模式,支持 ?* 作为通配符以及 # 作为分隔符。

-timeRange

String

复制时对文件最后修改时间的时间段匹配模式,格式为:YYYYMMDDHHmmSS-YYYYMMDDHHmmSS

-at

Bool

复制文件夹中文件的最后访问时间满足 timeRange 选项的文件列表。

-ddo

Bool

上传时文件夹本身不会作为单独一个对象上传。

-dmf

Bool

设置名称匹配模式和时间段匹配模式对文件夹不生效。

-dt

String

单独测试读或写的类型,支持的值如下:

  • source
  • destination

-ds

String

单独测试单流读或写时的文件大小,单位:字节,默认为 10MB。

-fr

Bool

操作单个文件时生成结果清单文件。

-o

String

生成结果清单文件的文件夹,默认为配置文件中的 defaultOutputDir

使用示例

复制单个文件

以下命令用于将 /Users/Downloads/TOS/tosutil 文件夹中的 object 文件复制为 /Users/Downloads/TOS/tosutil/object1

  • 命令

    ./tosutil fcp /Users/Downloads/TOS/tosutil/object /Users/Downloads/TOS/tosutil/object1
    
  • 返回

    Start at 2023-11-27 04:46:38.577567 +0000 UTC
    
    
    Jobs:          5                   VerifyChecksum: false
    TempFileDir: auto
    
    [---------------------------------------------] 100.00% ?/s 15.09MB/15.09MB 7ms
     
    Copy local file/folder successfully, 15.09MB, n/a, /Users/Downloads/TOS/tosutil/object --> /Users/Downloads/TOS/tosutil/object1, cost [7]
    

复制文件夹

以下命令用于将 /Users/Downloads/TOS/tosutil/folder1 文件夹中的所有文件复制至 /Users/Downloads/TOS/tosutil/folder2

说明

该命令会复制文件夹本身,复制后所有的文件均在 folder2 文件夹内。

  • 命令

    ./tosutil fcp /Users/Downloads/TOS/tosutil/folder1  /Users/Downloads/TOS/tosutil/folder2 -r
    
  • 返回

    Start at 2023-11-27 05:02:14.869508 +0000 UTC
    
    
    Jobs:          5                   VerifyChecksum: false
    OutputDir: /Users/bytedance/.tosutil_output
    TempFileDir: auto
    
    [-------------------------------] 100.00% tps:0.00 ?/s 4/4 30.18MB/30.18MB 11ms
    Succeed count is:   4         Failed count is:    0
    Succeed bytes is:   30.18MB
    Metrics [max cost:11 ms, min cost:0 ms, average cost:5.25 ms, average tps:333.33]
    
    Task id is: 2190c0c4-8ce2-11ee-8d1f-b645e1163e54
    

测试文件读写性能

以下命令用于测试 /Users/Downloads/TOS/tosutil/folder1 文件夹中的 **object.mov **文件的读性能。

  • 命令

    ./tosutil fcp /Users/bytedance/Downloads/TOS/tosutil/180/folder1/object.mov -dt=source
    
  • 返回

    Start at 2023-12-18 09:42:11.792216 +0000 UTC
    
    
    Jobs:          5                   VerifyChecksum: false
    TempFileDir: auto
    
    [---------------------------------------------] 100.00% ?/s 10.00MB/10.00MB 4ms
    
    Detect copy local file/folder successfully, 10.00MB, n/a, /Users/bytedance/Downloads/TOS/tosutil/folder1/object.mov --> [dustbin], cost [4]
    

说明

更多上传场景的示例命令,请参见上传示例