文档中心 对象存储 命令行工具

命令行工具

更新时间:2022-09-16 14:38:44

Wcscmd

wcscmd是基于python开发的一套命令行管理工具,支持python2python3及常见的操作系统

安装

推荐使用pip安装

  • 直接安装
pip install wcs-python-sdk
  • 更新方式
pip install -U wcs-python-sdk

初始化

在使用SDK之前,您需要获得一对有效的AccessKey和SecretKey签名授权。

可以通过如下方法获得:

  1. 开通网宿云存储账号
  2. 登录网宿SI平台,在安全管理-秘钥管理查看AccessKey和SecretKey
  3. 登录网宿SI平台,在安全管理-域名管理查看上传域名(puturl)和管理域名(mgrurl)。

获取上面4个配置之后,执行如下命令,通过命令行交互的方式对配置信息进行初始化:
wcscmd --configure

更新的配置信息会保存在$HOME目录下的.wcscfg文件中,同时可以通过下面的命令打印上一步添加的配置信息:
wcscmd --dump-config

.wcscfg文件中的配置参数说明如下:

access_key  #用户ak
block_size  #分片上传块大小,默认值4194304,配置时不需要带单位,默认单位为B
bput_retries  #分片上传,bput请求重传次数
bput_size  #分片上传块内片大小,默认值524288,配置时不需要带单位,默认单位为B
callbackBody  #回调上传成功后,服务端提交到callbackurl的数据
callbackUrl  #回调上传成功后,服务端以POST方式请求该地址
concurrency  #分片上传的块并发度,当并发度设置为0时为顺序上传
connection_retries  #请求建立连接时的重传次数
connection_timeout  #请求建立连接的超时时间,单位为秒
contentDetect  #文件上传成功后,进行内容鉴定操作
detectNotifyRule  #鉴定结果通知规则设置
detectNotifyURL  #接收鉴定结果的通知地址,要求必须是公网URL地址
force  #强制执行数据处理,默认值为0,不强制执行数据处理并覆盖原结果
ishttps  #是否使用https发起请求
limit  #列举资源API的limit参数,配置列举条目
marker #列举资源API的maker参数,配置上次列举返回的位置标记,作为本次列举的起点信息
mgr_url  #用户的管理域名
mkblk_retries  #分片上传,mkblk请求重传次数
mkfile_retries   #分片上传,mkfile请求重传次数
mode   #列举资源API的mode参数,配置列表排序方式
notifyurl  #异步处理API处理结果通知接收URL
output   #将任务处理结果的描述信息保存到指定文件,格式为:<bucket>:<key>。
overwrite   #上传API发现文件已存在时是否覆盖
persistentNotifyUrl   #接收预处理结果通知的地址
persistentOps  #文件上传成功后,预处理指令列表
prefix  #列举资源API的prefix参数
put_url   #用户上传域名
returnBody  #上传成功后,自定义最终返回給上传端的数据
returnUrl  #上传成功后,服务端以POST方式请求该地址
secret_key  #用户sk
separate  #处理指令是否分开通知
tmp_record_folder  #分片上传上传进度记录目录
upload_id   #分片上传断点续传的任务id

wcscmd命令行工具使用

Windows系统执行命令需要添加python再执行,如python wcscmd --help

查阅工具使用说明

wcscmd --help
Commands:
List objects  支持后面加参数 如--prefix aa
	wcscmd list wcs://BUCKET RESFILE
List buckets
	wcscmd listbucket
Download file
	wcscmd get URL
Delete a file
	wcscmd del wcs://BUCKET/OBJECT
Move a file from src bucket to des bucket
	wcscmd mv wcs://srcBUCKET/srcOBJECT wcs://dstBUCKET/desOBJECT
Copy a file from src bucket to des bucket
	wcscmd cp wcs://srcBUCKET/srcOBJECT wcs://dstBUCKET/desOBJECT
Set deadline of file
	wcscmd setdeadline wcs://BUCKET/OBJECT deadline
Get file info
	wcscmd stat wcs://BUCKET/OBJECT
Upload a local file to WCS
	wcscmd put wcs://BUCKET/OBJECT LOCALFILE
Multipart upload a local file to WCS
	wcscmd multiput wcs://BUCKET/OBJECT LOCALFILE
Delete multiple files according to prefix
	wcscmd deletePrefix wcs://BUCKET PREFIX
Fops audio/video processing
	wcscmd fops wcs://BUCKET/OBJECT fopsparm
Get fops task results
	wcscmd fopsStatus  persistentId
Get fmgr task results
	wcscmd fmgrStatus  persistentId

wcscmd-普通上传

上传策略可以通过编辑.wcscfg文件中响应的配置项进行定义,也可以通过命令行的option进行临时配置,

wcscmd put wcs://BUCKET/OBJECT localPath  --overwrite 1

wcscmd-分片上传

上传策略可以通过编辑.wcscfg文件中响应的配置项进行定义,也可以通过命令行的option进行临时配置,如果需要进行断点续传需要增加–upload-id这个option,这个upload-id的优先级高于在.wcscfg中配置的upload id

wcscmd multiput wcs://BUCKET/OBJECT localPath --upload-id 3IL3ce3kR6kDf4sihxh0LcWUpzTYEKFf

wcscmd-列举空间列表

wcscmd listbucket

wcscmd-列举空间文件列表

空间test的列举结果会保存在当前目录的result文件中

wcscmd list wcs://BUCKET ./result --limit 4  --marker 2

wcscmd下载文件

未带filename 参数,下载的文件默认会与源文件同名,并保存在当前目录下
带有filename 参数,下载文件保存在当前目录下,文件名称为参数filename
url 需要用’'引号包含起来

wcscmd get [URL] [filename]

wcscmd-获取文件信息

wcscmd stat wcs://BUCKET/OBJECT

wcscmd-设置文件保存期限

保存时间单位为天,0表示尽快删除,-1表示取消过期时间,永久保存,要设置-1的时候,需要将整个包含在引号内

wcscmd setdeadline wcs://BUCKET/OBJECT 3
wcscmd setdeadline wcs://BUCKET/OBJECT '"-1"'

wcscmd-删除文件

wcscmd del wcs://BUCKET/OBJECT

wcscmd-按前缀删除文件

wcscmd deletePrefix wcs://BUCKET test-prefix

wcscmd-移动文件

wcscmd mv wcs://SRCBUCKET/SRCOBJECT wcs://DSTBUCKET/DSTOBJECT

wcscmd-复制文件

wcscmd cp wcs://SRCBUCKET/SRCOBJECT wcs://DSTBUCKET/DSTOBJECT

计算文件etag值

wcs-python-sdk提供了计算文件etag值的工具,用户通过命令行的形式体验这个功能

/usr/bin/wcs_etag_cal -h
usage: WCS-Python-SDK [-h] {etag} ...

positional arguments:
  {etag}
    etag      etag [file...]

optional arguments:
 -h, --help  show this help message and exit

/usr/bin/wcs_etag_cal etag filepath1 filepath2
[filepath1, filepath2]
FrA377uGHSxcTM62-rjsjvoKqRVS FiUsqBkZ6e8KaAA9Uu6q3qLPgmDW

S3cmd

s3cmd是一款基于Linux和Mac OS操作系统使用的S3命令行工具。

配置步骤

1、下载安装包,下载地址:https://sourceforge.net/projects/s3tools/files/s3cmd/
2、解压安装包,tar -xzvf s3cmd-1.6.1.tar.gz
3、移动路径,mv s3cmd-1.6.1 /usr/local/s3cmd - 创建软连接,ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd
4、执行配置命令(按提示输入相应密码等),s3cmd --configure,执行该命令后,会生成~/.s3cfg配置文件。
5、编辑配置文件,修改以下几个参数: vi ~/.s3cfg

access_key = 7e844d6xxxxe8e320b627f7fc8baf9c501a
secret_key = ec471c7fxxxx769c73dbb83a6767e7d2791
host_base = 127.0.0.1:7085

操作说明

使用s3cmd命令行工具,输入s3cmd –h,会展示使用帮助说明。

列举桶

命令:

s3cmd ls

注:s3cmd工具默认使用的是v4签名版本,若要使用v2版本加上 --signature-v2选项。

删除桶

命令:

s3cmd rb s3://mybucket

列举对象

s3cmd ls s3://bucket\[/PREFIX\]

注:列举桶中的文件和文件夹,文件会显示修改时间和大小,目录则显示DIR。

删除对象

s3cmd del s3://BUCKET/OBJECT
或
s3cmd rm s3://BUCKET/OBJECT

普通上传

s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]

当上传的文件大小小于配置文件中设置的大小,则会使用普通上传方式。

分片上传

s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]

当上传的文件大小大于配置文件中设置的大小,则会使用分片上传方式,每块大小根据配置文件配置。

下载对象

下载单个文件:

s3cmd get s3://BUCKET/OBJECT LOCAL_FILE

递归下载目录下的所有文件:

s3cmd get --recursive s3://BUCKET/dir/* ./

拷贝对象

s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]

删除多对象

s3cmd支持删除多对象的操作,其是同时发送多条删除请求命令。删除命令如下:

s3cmd del s3://bucket/object s3://bucket/object

同步操作

s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR
同步本地文件到目标桶或者从桶同步文件到本地。同步操作是要进行MD5校验的,只有当文件不同时,才会被传输。

同步当前目录下所有文件:
s3cmd sync ./ s3://bucket/

加 "--dry-run"参数后,仅列出需要同步的项目,不实际进行同步:
s3cmd sync --dry-run ./ s3://bucket/

加 " --delete-removed"参数后,会删除本地不存在的文件:
s3cmd sync --delete-removed ./ s3://bucket/

加 " --skip-existing"参数后,不进行MD5校验,直接跳过本地已存在的文件:
s3cmd sync --skip-existing ./ s3://my-bucket-name/
本篇文档内容对您是否有帮助?
有帮助
我要反馈
提交成功!非常感谢您的反馈,我们会继续努力做到更好!