KS3Util命令行工具

最近更新时间:2019-09-19 17:46:38

KS3Util 使用说明


版本历史

版本号 修改内容 时间
ks3util-1.1.0-dist 包括功能:List、上传、下载、批量下载、批量删除、批量设置ACL 2017年6月2日
ks3util-1.1.1-dist 增加了Bucket统计容量的功能 2017年6月7日
ks3util-1.1.2-dist List命令增加了显示文件大小、文件MD5值的可选项 2018年1月29日
ks3util-1.1.3-dist 修复了批量复制的Bug 2019年5月21日

一.介绍

KS3Util命令行工具为用户提供一个方便的,以命令行方式管理KS3数据的途径。KS3Util提供的功能包括:列出Bucket下所有Object、上传、下载、批量下载、批量删除、批量设置ACL。

工具下载地址:

https://ks3-cn-beijing.ksyun.com/ks3-tools/ks3util-1.1.3-dist.zip

二.运行环境

用户系统需要具备jdk 1.6/1.7/1.8 环境,建议使用Oracle版本JDK

Windows安装jdk1.7

方法参考

http://jingyan.baidu.com/article/b24f6c82c989da86bfe5dab2.html

安装完成后,在命令提示符下,执行java –version,来确认是否安装成功 。如下所示,即安装成功

Linux安装jdk1.7

方法参考

http://www.cnblogs.com/wuqianling/p/5381895.html

安装完成后,在终端下执行java –version,来确认是否安装成功

如下所示,即安装成功

image.png

三,使用方式

假设work_dir=/your_dir/ 配置文件中请填写绝对路径

1.解压文件

unzip ks3util-{VERSION}-dist.zip -d ${work_dir}
cd ${work_dir}/ks3util-{VERSION}
chmod 755 bin/ks3util
#运行help命令,查看支持的功能
./bin/ks3util help

2.填写配置文件xxx.conf

根据${work_dir}下解压后的sample.conf,创建用户自己新的任务配置文件xxx.conf

如果把配置文件放在用户目录并且命名为.ks3utilconfig(~/.ks3utilconfig),则不需要在命令行中指定配置文件

配置文件中,字段具体含义如下

字段 说明 是否必填
ks3.ak 账户AK,使用KS3控制台生成
ks3.sk 账户SK,使用KS3控制台生成
ks3.endpoint bucket所在region的endpoint,对应列表参看官方文档
ks3.protocol 协议:http|https,默认为http协议
http.conn.timeout http连接超时,默认为10000ms,一般不需要更改
http.so.timeout http通讯超时,默认为10000ms,一般不需要更改
http.max.connections http连接数,默认值:100
async.queuesize 批量处理时的队列长度,默认:200,该值越大内存使用率越大
async.max.threads 批量处理时最大并发数,默认:100
async.core.threads 批量处理时最小并发数,默认:CPU核数
ks3.movedest.ak multi-move操作时的目标账号AK multi-move操作时必填
ks3.movedest.sk multi-move操作时的目标账号SK multi-move操作时必填
ks3.movedest.endpoint multi-move操作时的目标Bucket所在的endpoint multi-move操作时必填
multipart.threads 批量复制时分块上传的并发数,默认值:50 multi-move操作时选填

3.命令格式说明

usage: ks3util <command> [ <args> ]

Commands are:
    du           Calculate sum of object size
    get          Download a file from ks3
    help         Display help information
    ls           List ks3 object keys
    multi-del    Multi delete ks3 keys
    multi-get    Batch download
    multi-move   Batch move frome one bucket to another
    put          Upload a file to ks3
    set-acl      Batch set ks3 objects acl

See 'ks3util help <command>' for more information on a specific command.

四、命令合集

help命令

描述

介绍ks3util各个命令的语法格式。

命令

NAME
        ks3util help - Display help information
SYNOPSIS
        ks3util help [ -c <config_file> ] [ {-h | --help} ] [--] [ <command>... ]
OPTIONS
        -c <config_file>
            set ks3/http/asyc properties
        -h, --help
            Display help information
        --
            This option can be used to separate command-line options from the
            list of arguments (useful when arguments might be mistaken for
            command-line options)
        <command>

列举BUCKET下文件

描述

可以列举用户某个BUCKET下所有文件,并把文件信息保存到外部文件中。

命令

NAME
      ks3util ls - List ks3 object keys

SYNOPSIS
      ks3util ls -b <bucket_name> [ -c <config_file> ] [ {-h | --help} ]
                -k <ks3_keys> [ -m <marker> ] [ -p <prefix> ] [ -o <other>]

OPTIONS
        -b <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -h, --help
            Display help information

        -k <ks3_keys>
            Ks3 keys file

        -m <marker>
            Marker

        -o <other>
            Other meta

        -p <prefix>
            Prefix

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
ks3_keys 输出结果文件路径,每行一个objectkey
marker 从指定objectkey开始遍历,忽略这个objectkey及以前的对象 否,如果不填,则从头开始遍历
prefix 限定响应结果列表使用的前缀
other 指定是否显示文件的meta信息(包括文件大小和md5) ,取值为固定值“meta”

注意: 1.如果本地已经存在ks3_keys中指定的文件,执行此命令产生的内容将追加写到文件中。 2.如果用户上传文件时没有指定md5值或用户通过分片上传,meta信息中将不包含md5信息。

举例:

列举example这个bucket下,folder目录下的文件信息到根目录下的list.txt文件中。每行包含文件名、文件md5值和文件大小,使用“|”符号隔离。

ks3util ls -b example -p folder/ -k /list.txt -o meta -c /software/ks3util-1.1.2/sample.conf

统计Bucket容量

描述

用于统计某个Bucket的容量,也可以统计Bucket下某个目录的容量。

命令

NAME
       du - Calculate sum of object size

       SYNOPSIS
               ks3util du -b <bucket_name> [ -c <config_file> ] [ {-h | --help} ]
                       [ -m <marker> ] [ -p <prefix> ]

       OPTIONS
               -b <bucket_name>
                   Bucket name

               -c <config_file>
                   set ks3/http/asyc properties

               -h, --help
                   Display help information

               -m <marker>
                   Marker

               -p <prefix>
                   Prefix

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
marker 从指定objectkey开始遍历,忽略这个objectkey及以前的对象 否,如果不填,则从头开始遍历
prefix 只计算某个目录下的文件大小

批量设置文件ACL

描述

为指定文件设置ACL。

命令

NAME
      ks3util set-acl - Batch set ks3 objects acl

SYNOPSIS
      ks3util set-acl -a <acl_str> -b <bucket_name> [ -c <config_file> ]
                [ {-h | --help} ] -k <ks3_keys>

OPTIONS
        -a <acl_str>
            acl: Private|PublicRead

        -b <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -h, --help
            Display help information

        -k <ks3_keys>
            Ks3 keys file

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
ks3_keys 包含objectkey的文件,每行一个objectkey
acl_str 值:Private | PublicRead

批量删除文件

描述

删除某个bucket下指定文件。

命令

NAME
       ks3util multi-del - Multi delete ks3 keys

SYNOPSIS
       ks3util multi-del -b <bucket_name> [ -c <config_file> ] -f <fail_keys>
                [ {-h | --help} ] -k <ks3_keys>

OPTIONS
        -b <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -f <fail_keys>
            Failure keys list

        -h, --help
            Display help information

        -k <ks3_keys>
            Ks3 keys file

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
ks3_keys 包含objectkey的文件,每行一个objectkey
fail_keys 将删除失败的objectkey保存到文件中

批量下载文件

描述

批量下载指定文件。

命令

NAME
     ks3util multi-get - Batch download

SYNOPSIS
     ks3util multi-get -b <bucket_name> [ -c <config_file> ] -f <fail_keys>
                [ {-h | --help} ] -k <ks3_keys> [ -p <skip_line_num> ] -s <save_dirs>

OPTIONS
        -b <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -f <fail_keys>
            Failure keys list

        -h, --help
            Display help information

        -k <ks3_keys>
            Ks3 keys file

        -p <skip_line_num>
            Skip n line from ks3_keys

        -s <save_dirs>
            Save to local directorys, multiple directories separated by ","

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
ks3_keys 包含objectkey的文件,每行一个objectkey
fail_keys 将下载失败的objectkey保存到文件中
save_dirs 下载至本地的文件夹目录,多个目录以“,”分隔
skip_line_num 跳过ks3_keys文件中的前N行不执行

下载文件

描述

下载指定文件。

命令

NAME
       ks3util get - Download a file from ks3

SYNOPSIS
       ks3util get {-b | --bucket} <bucket_name> [ -c <config_file> ]
                [ {-h | --help} ] [--] <ks3_key> <local_key>...

OPTIONS
        -b <bucket_name>, --bucket <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -h, --help
            Display help information

        <ks3_key> <local_key>

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
ks3_key ks3上的objectkey全名称
local_key 下载到本地的文件名

批量复制文件

描述

一个bucket的指定文件复制到另一个bucket,两个bucket可以在不同的region。 使用这个功能,config文件中需要加入三个参数: ks3.movedest.ak=xxx ks3.movedest.sk=xxx ks3.movedest.endpoint=kss.ksyun.com

命令

NAME
        ks3util multi-move - Batch move frome one bucket to another

SYNOPSIS
        ks3util multi-move -b <src_bucket_name> -B <dst_bucket_name>
        [ -c <config_file> ] -f <fail_keys> [ {-h | --help} ] -k <ks3_keys>  [ -p <ks3Parts> ]

OPTIONS
        -b <src_bucket_name>
        src Bucket name

        -B <dst_bucket_name>
        dest Bucket name

        -c <config_file>
        set ks3/http/asyc properties

        -f <fail_keys>
        Failure keys file

        -h, --help
        Display help information

        -k <ks3_keys>
        Ks3 keys file

    -p <ks3Parts>
    Failure Ks3Parts

参数

名称 描述 是否必填写
src_bucket_name 源桶的名称
dst_bucket_name 目标桶的名称
ks3_keys 包含要复制的objectkey的文件,每行一个objectkey
fail_keys 将复制失败的objectkey保存到文件中
ks3Parts 将复制失败的ks3Parts保存到文件中

上传文件

描述

上传本地文件至KS3,如果上传的文件大于20MB,会自动启用分块上传,每个分块20MB。

命令

NAME
        ks3util put - Upload a file to ks3

SYNOPSIS
        ks3util put [ {-a | --acl} <acl> ] {-b | --bucket} <bucket_name>
                [ -c <config_file> ] [ {-h | --help} ] [--] <local_file> <ks3_key>...

OPTIONS
        -a <acl>, --acl <acl>
            Object ACL:Private|PublicRead

        -b <bucket_name>, --bucket <bucket_name>
            Bucket name

        -c <config_file>
            set ks3/http/asyc properties

        -h, --help
            Display help information

        --
            This option can be used to separate command-line options from the
            list of arguments (useful when arguments might be mistaken for
            command-line options)

        <local_file> <ks3_key>

参数

名称 描述 是否必填写
bucket_name 用户桶的名称
local_file 本地的文件名
ks3_key ks3上的objectkey全名称
acl 文件的权限,值:Private | PublicRead 否(默认: Private)

五、日志和运行情况

会在命令执行目录下创建logs目录,如有问题请将info.log,warn.log,error.log发给ks3售前(后)咨询

金山云,开启您的云计算之旅

注册有礼