更新时间:2022-09-16 14:38:44
wcscmd是基于python开发的一套命令行管理工具,支持python2、python3及常见的操作系统
推荐使用pip安装
pip install wcs-python-sdk
pip install -U wcs-python-sdk
在使用SDK之前,您需要获得一对有效的AccessKey和SecretKey签名授权。
可以通过如下方法获得:
获取上面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
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
上传策略可以通过编辑.wcscfg文件中响应的配置项进行定义,也可以通过命令行的option进行临时配置,
wcscmd put wcs://BUCKET/OBJECT localPath --overwrite 1
上传策略可以通过编辑.wcscfg文件中响应的配置项进行定义,也可以通过命令行的option进行临时配置,如果需要进行断点续传需要增加–upload-id这个option,这个upload-id的优先级高于在.wcscfg中配置的upload id
wcscmd multiput wcs://BUCKET/OBJECT localPath --upload-id 3IL3ce3kR6kDf4sihxh0LcWUpzTYEKFf
wcscmd listbucket
空间test的列举结果会保存在当前目录的result文件中
wcscmd list wcs://BUCKET ./result --limit 4 --marker 2
未带filename 参数,下载的文件默认会与源文件同名,并保存在当前目录下
带有filename 参数,下载文件保存在当前目录下,文件名称为参数filename
url 需要用’'引号包含起来
wcscmd get [URL] [filename]
wcscmd stat wcs://BUCKET/OBJECT
保存时间单位为天,0表示尽快删除,-1表示取消过期时间,永久保存,要设置-1的时候,需要将整个包含在引号内
wcscmd setdeadline wcs://BUCKET/OBJECT 3
wcscmd setdeadline wcs://BUCKET/OBJECT '"-1"'
wcscmd del wcs://BUCKET/OBJECT
wcscmd deletePrefix wcs://BUCKET test-prefix
wcscmd mv wcs://SRCBUCKET/SRCOBJECT wcs://DSTBUCKET/DSTOBJECT
wcscmd cp wcs://SRCBUCKET/SRCOBJECT wcs://DSTBUCKET/DSTOBJECT
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是一款基于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/