目标
将本地文件同步到阿里云 OSS
步骤
- 下载命令行工具
ossutil
- 解压文件后可以看到当前目录有
ossutil.exe
和ossutil64.exe
两个文件,分别对应 32 位和 64 位系统。
配置文件
./ossutil config -e endpoint -i your_id -k your_secret
参数说明:
-e, –endpoint
ossutil工具的基本endpoint配置,注意其必须为一个二级域名。
-i, –access-key-id
访问oss使用的AccessKeyID。
-k, –access-key-secret
访问oss使用的AccessKeySecret。
-L CH, –language=CH
设置ossutil工具的语言,默认值:CH,取值范围:CH/EN,若设置成”CH”,请确保您的系统编码为UTF-8。
需求Ⅰ
将本机 D:\FFSFiles\AAAAA
目录文件同步到OSS bucket: oss://ffs-document/AAAAA
新建一个批处理文件 SycOSS.bat
,内容如下:
1 | call ossutil64.exe cp -r -f D:\FFSFiles\AAAAA oss://ffs-document/AAAAA -j 10 --maxupspeed 5120 --loglevel=info -c C:\Zerow\FSSSync\.ossutilconfig --snapshot-path=C:\Zerow\FSSSync\uploadLog --meta X-oss-Storage-Class:IA |
参数说明:
call:bat 调用程序
ossutil64.exe:64位系统
cp:上传/下载/拷贝文件
-r:拷贝文件夹,对大文件默认使用分片上传并可进行断点续传
-f:默认强制上传,当目标端存在同名文件时,不询问,直接覆盖。
D:\FFSFiles\AAAAA:待同步的本地文件夹
oss://ffs-document/AAAAA:目标 Bucket
-j:多个文件上传/下载/拷贝时,并发数
–maxupspeed:上传文件/文件夹时,设定上传时的最高速度,单位为 KB/s,缺省为 0(不限速)
–loglevel:日志级别,默认为空,表示不输出日志文件,取值: info|debug,info 输出提示信息日志,debug 输出详细信息日志(包括 http 请求和响应信息)
-c:ossutil 工具的配置文件路径,ossutil 启动时从配置文件读取配置
–snapshot-path:指定文件上传的快照信息目录,根据快照信息进行增量上传
–meta:设置 object 的 meta 为[header:value#header:value…]
需求Ⅱ
如果在同一级父目录下有很多兄弟目录需要同步呢,比如 D:\FFSFiles\AAAAA
、D:\FFSFiles\BBBBB
、D:\FFSFiles\CCCCC
等等,批处理文件内容就要改成这样:
1 | ossutil64.exe cp -r -f D:\FFSFiles\AAAAA oss://ffs-document/AAAAA -j 10 --maxupspeed 5120 --loglevel=info -c C:\Zerow\FSSSync\.ossutilconfig --snapshot-path=C:\Zerow\FSSSync\uploadLog --meta X-oss-Storage-Class:IA |
如果有很多个目录需要同步呢,DDDDD、EEEEE、FFFFF、GGGGG……岂不是要写很多行 ossutil64.exe
执行命令?在批处理中,对于执行重复的命令,只是部分参数不同的时候一样可以使用循环来实现。
继续修改批处理内容:
1 | set upDir=AAAAA,BBBBB,CCCCC,DDDDD,EEEEE,FFFFF,GGGGG |
参数说明:
set:设置一个变量,使用英文逗号(,)隔开
for in do:批处理for循环