且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Aliyun OSSUTIL实现上传下载

更新时间:2022-09-15 22:35:51

关于

  • 该工具旨在为用户提供一个方便的,以命令行方式管理OSS数据的途径。

  • 当前版本未提供Bucket管理功能和Multipart管理功能,相关功能会在后续版本中开发。现在如果有使用上述功能的需要,可以先使用osscmd命令行工具。

工具下载

当前版本

  • 当前版本:1.0.0.Beta

运行环境

  • linux, windows, mac

binary下载

安装使用

根据您的操作系统选择相应的binary或者压缩包下载后,运行相应的binary(如果binary为不可执行文件,请给binary增加可执行权限:chmod 755 ossutil),即:

linux系统下:

./ossutil

windows系统下有两种方法(以64位系统为例):

1) 解压压缩包,双击运行其中的bat文件,再键入:ossutil64.exe

2)解压压缩包,cmd进入压缩包中binary所在的目录,键入:ossutil64.exe

mac系统下:

./ossutilmac64


快速使用

设置ossutil的语言

在使用ossutil的命令时,可以使用-L选项设置语言,可选范围为CH/EN,即:中文或英文。大小写不敏感。默认语言为CH(中文),如果设置成CH(中文),需要确保您的系统为utf-8编码,否则可能会显示乱码。

如:

./ossutil help ls显示ls默认语言的帮助

./ossutil help ls -L ch 显示ls的中文帮助

./ossutil help ls -L en 显示ls的英文帮助

./ossutil config -L ch 运行ossutil config的交互式配置命令,其中的提示语言为中文。

./ossutil config -L en 运行ossutil config的交互式配置命令,其中的提示语言为英文。

注意:ossutil输出的错误默认都为英文,不会受上述选项影响。

获取命令列表

./ossutil或 ./ossutil help

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$./ossutil
用法: ossutil [command] [args...] [options...]
请使用ossutil help command来显示command命令的帮助
Commands:
  mb              cloud_url [options]
        创建Bucket
  ls              [cloud_url] [options]
        列举Buckets或者Objects
  rm              cloud_url [options]
        删除Bucket或Objects
  stat            cloud_url [options]
        显示bucket或者object的描述信息
  set-acl         cloud_url [acl] [options]
        设置bucket或者objects的acl
  set-meta        cloud_url [meta] [options]
        设置已上传的objects的元信息
  cp              src_url dest_url [options]
        上传,下载或拷贝Objects
  restore         cloud_url [options]
        恢复冷冻状态的Objects为可读状态
  create-symlink  cloud_url target_url [options]
        创建符号链接
  read-symlink    cloud_url [options]
        读取符号链接文件的描述信息
Additional Commands:
  help            [command]
        获取命令的帮助文档
  config          [options]
        创建配置文件用以存储配置项
  hash            file_url [options]
        计算本地文件的crc64或md5
  update          [options]
        更新ossutil
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$./ossutil  -L en
Usage: ossutil [command] [args...] [options...]
Please use 'ossutil help command' to show help of command
Commands:
  mb              cloud_url [options]
        Make Bucket
  ls              [cloud_url] [options]
        List Buckets or Objects
  rm              cloud_url [options]
        Remove Bucket or Objects
  stat            cloud_url [options]
        Display meta information of bucket or objects
  set-acl         cloud_url [acl] [options]
        Set acl on bucket or objects
  set-meta        cloud_url [meta] [options]
        set metadata on already uploaded objects
  cp              src_url dest_url [options]
        Upload, Download or Copy Objects
  restore         cloud_url [options]
        Restore Frozen State Object to Read Ready Status
  create-symlink  cloud_url target_url [options]
        Create symlink of object
  read-symlink    cloud_url [options]
        Display meta information of symlink object
Additional Commands:
  help            [command]
        Get help about commands
  config          [options]
        Create configuration file to store credentials
  hash            file_url [options]
        Get crc64 or md5 of local file
  update          [options]
        Update ossutil

查看某命令的帮助文档

./ossutil help cmd强烈建议在使用某命令前先使用help来查阅帮助文档。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
./ossutil  help config -L ch
SYNOPSIS
    创建配置文件用以存储配置项
SYNTAX
    ossutil config [-e endpoint] [-i id] [-k key] [-t token] [-L language] [--output-dir outdir] [-c file]
DETAIL DESCRIPTION
    该命令创建配置文件,将用户设置的配置项信息存储进该配置文件,配置项用
    以访问OSS时提供访问信息(某命令是否需要配置项,参见其是否支持
    --config-file选项,具体可见该命令的帮助)。
    配置文件路径可由用户指定,默认为/home/admin/.ossutilconfig。如果配置
    文件存在,假设其为:a,ossutil会将文件a另存为:a.bak,然后重新创建文件a
    并写入配置,此时,如果a.bak存在,其会被文件a覆盖。
    注意:
    (1)如果指定的配置文件路径非默认路径,在使用命令时请将--config-file选
    项设置为你配置时指定的配置文件路径(如果不指定--config-file选项,则运
    行命令时默认会读取/home/admin/.ossutilconfig)。
    (2)某些配置可在使用命令时通过选项进行设置,如--endpoint,--access-key-id,
    等选项(具体请见每个命令的帮助),如果使用命令时指定了这些选项,并且同
    时配置文件中也配置了这些信息,则优先级为:选项 > 配置文件。
    (3)如果使用命令时指定了--endpoint、--access-key-id、--access-key-secret
    或--sts-token选项,则ossutil不强求配置文件一定要存在。
用法:
    该命令有两种用法,交互式1)和非交互式2),推荐用法为交互式,因为交互
    式用法拥有更好的安全性。
    1) ossutil config [-c file]
        该用法提供一种交互式的方法来配置信息,ossutil交互式地询问用户如下
    信息:
        (1) config file
            配置文件路径,如果用户键入回车,ossutil会使用默认的配置文件:
        /home/admin/.ossutilconfig。
            如果用户自己指定了配置文件,在使用命令时需要将--config-file选项
        设置为用户设置的配置文件路径。哪些命令支持--config-file选项可由查看
        每个命令的帮助。
        (2) language
            当首次配置(配置文件不存在)时,ossutil会向用户询问语言设置,可
        选值为中文或者英文(CH/EN),如果键入回车,ossutil将根据用户输入的
        --language选项配置,如果此时用户也未输入--language选项,将配置成默认
        语言中文。
            如果配置文件已存在,ossutil会综合用户输入的language选项和配置文件
        中的语言信息,配置该项,而不会询问。
            ossutil在运行时会从配置文件中读取该language选项,如果该选项不存在
        或者非法,将采用默认语言:CH。
            注意:该配置项在此次config成功结束后才会生效,在执行config命令过
        程中语言显示不会受用户的选择影响。
        (3) endpoint, accessKeyID, accessKeySecret
            回车代表着跳过相应配置项的设置。注意:endpoint应该为一个二级域
        名(SLD),例如:oss.aliyuncs.com。
            以上选项一般为必选项。
        (4) stsToken
            如果用户需要使用临时token来访问oss,用户需要填入该项,否则请输入
        回车跳过该项配置。
        (5) outputDir
            该选项配置输出文件所在目录的路径。交互式模式时不提供该选项的配置,
        但配置文件中该项配置起效。
            outputDir的默认目录为:当前目录下的:ossutil_output,ossutil会在
        运行过程中将输出文件都生成到该文件夹下。输出文件目前包含:在cp命令中
        批量操作出错时,记录每个文件操作的错误信息的report文件。
            关于outputDir和report文件的更多信息请参见cp命令的帮助。
            注意:outputDir如果不存在,ossutil在产生输出文件时会自动创建该目录,
        如果outputDir存在且并非目录,将会报错。
        下述交互式Bucket-Endpoint和Bucket-Cname配置被取消,但配置文件中该两项
        配置仍然起效。
        (6) Bucket-Endpoint
            Bucket-Endpoint对每个指定的bucket单独配置endpoint,此配置会优先于
        配置文件中关于默认endpoint的配置。
            在该版本中,ossutil取消了交互式配置中,关于Bucket-Endpoint配对的配
        置,但配置文件中该项配置仍然起效,所以如果用户想对每个bucket单独指定
        endpoint,仍然可以在配置文件中进行配置。注意:此处的endpoint应该为一个
        二级域名(SLD),例如:oss.aliyuncs.com。
            如果配置了Bucket-Endpoint选项,当对某bucket进行操作时,ossutil会在
        该选项中寻找该bucket对应的endpoint,如果找到,该endpoint会覆盖基本配置
        中endpoint。但是运行命令时如果指定了--endpoint选项,--endpoint选项为最
        高优先级。
        (7) Bucket-Cname
            Bucket-Cname为每个指定的bucket单独配置CNAME域名(CDN加速域名),此
        配置会优先于配置文件中Bucket-Endpoint及endpoint的配置。
            在该版本中,ossutil取消了交互式配置中,关于Bucket-Cname配对的配置,
        但配置文件中该项配置仍然起效,所以如果用户想对每个bucket单独指定CNAME
        域名,仍然可以在配置文件中进行配置。
            如果配置了Bucket-Cname选项,当对某bucket进行操作时,ossutil会在该
        选项中寻找该bucket对应的CNAME域名,如果找到,则找到的CNAME域名会覆盖
        Bucket-Endpoint选项和基本配置中的endpoint。运行命令时如果指定了--endpoint
        选项,--endpoint选项为最高优先级。
        优先级:--endpoint > Bucket-Cname > Bucket-Endpoint > endpoint > 默认endpoint
    2) ossutil config options
        如果用户使用命令时输入了除--language和--config-file之外的任何选项,则
    该命令进入非交互式模式。所有的配置项应当使用选项指定。
配置文件格式:
    [Credentials]
        language = CH
        endpoint = oss.aliyuncs.com
        accessKeyID = your_key_id
        accessKeySecret = your_key_secret
        stsToken = your_sts_token
        outputDir = your_output_dir
    [Bucket-Endpoint]
        bucket1 = endpoint1
        bucket2 = endpoint2
        ...
    [Bucket-Cname]
        bucket1 = cname1
        bucket2 = cname2
        ...
SAMPLE
    ossutil config
    ossutil config -e oss-cn-hangzhou.aliyuncs.com -c ~/.myconfig
OPTIONS
    -c, --config-file
        ossutil工具的配置文件路径,ossutil启动时从配置文件读取配置,在config命令中,ossutil将配置写入该文件。
    -e, --endpoint
        ossutil工具的基本endpoint配置(该选项值会覆盖配置文件中的相应设置),注意其必须为一个二级域名。
    -i, --access-key-id
        访问oss使用的AccessKeyID(该选项值会覆盖配置文件中的相应设置)。
    -k, --access-key-secret
        访问oss使用的AccessKeySecret(该选项值会覆盖配置文件中的相应设置)。
    -t, --sts-token
        访问oss使用的STSToken(该选项值会覆盖配置文件中的相应设置),非必须设置项。
    --output-dir=ossutil_output
        指定输出文件所在的目录,输出文件目前包含:cp命令批量拷贝文件出错时所产生的report文件(关于report文件更多信息,请参考cp命令帮助)。默认值为:当前目录下的ossutil_output目录。
    -L CH, --language=CH
        设置ossutil工具的语言,默认值:CH,取值范围:CH/EN,若设置成"CH",请确保您的系统编码为UTF-8。

配置ossutil

在使用访问oss的命令时,需要先配置访问AK,关于AK的更多信息见:RAM和STS介绍

配置ossutil由两种方式:交互式和非交互式。

关于配置命令的更多帮助,请使用ossutil help config查看。

交互式配置ossutil

./ossutil config

默认配置文件目录,为用户根目录下的.ossutilconfig

1
2
3
$./ossutil config -L ch
该命令创建将一个配置文件,在其中存储配置信息。
请输入配置文件路径(默认为:/home/admin/.ossutilconfig,回车将使用默认路径。如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):
非交互式配置ossutil
1
./ossutil config -e oss.aliyuncs.com -i your_id -k your_key

列举Buckets

./ossutil ls或 ./ossutil ls oss://

Aliyun OSSUTIL实现上传下载

列举Objects

./ossutil ls oss://bucket

Aliyun OSSUTIL实现上传下载

上传文件

./ossutil cp -r localfile oss://bucket

Aliyun OSSUTIL实现上传下载

Aliyun OSSUTIL实现上传下载

下载文件

./ossutil cp -r --update oss://bucket localfile

删除Bucket

./ossutil rm oss://bucket -rfb

Aliyun OSSUTIL实现上传下载

参考:https://help.aliyun.com/document_detail/50452.html?spm=5176.product31815.3.2.1MiHLr

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1865558如需转载请自行联系原作者


qianghong000