Linux下SSH用qshell命令上传文件到七牛云存储详解,使用Shell脚本实现数据的自动上传下载Bucket对象存储
安装qshellyum -y install unzip wget
wget http://devtools.qiniu.com/qshell-v2.2.0.zip
unzip qshell-*.zip qshell-linux-x64
mv qshell-linux-x64 /home
cd /home
chmod +x qshell-linux-x64
mv qshell-linux-x64 qshell
测试运行
./qshell -h
个人中心找到AK和SK(AccessKey/SecretKey)
https://portal.qiniu.com/user/key
设置ak和sk信息
./qshell account ak sk
测试是否成功
./qshell account
输出:
AccessKey: ELUs327kxVPJrGCXqWae9yioc0xYZyrIpbM6Wh6x
SecretKey: LVzZY2SqOQ_I_kM1n00ygACVBArDvOWtiLkDtKiw
到此安装完毕。
七牛云存储免费提供1GB存储空间和10GB每日外网流量,实名后可以提升免费空间到10G。
付费空间的话,10G=1元1个月,30G=3元一个月,华南地区打折会优惠点,30G=2.7元一个月。
付费用户注册地址:https://portal.qiniu.com/signup?code=3lj7iypa0m9n6
上传文件
fput命令用来以multipart/form-data的表单方式上传一个文件。适合于中小型文件的上传,一般建议如果文件大小超过100MB的话,都使用分片上传。
格式
qshell fput <Bucket> <RemoteFile> <LocalFile>
参数名称 描述 可选参数
Bucket 七牛空间名称,可以为公开空间或私有空间 必选
RemoteFile 文件保存在七牛空间的名称 必选
LocalFile 本地文件的路径 必选
Overwrite 是否覆盖空间已有文件,默认为false Y
MimeType 指定文件的MimeType Y
UpHost 上传入口地址,默认为空间所在机房的上传加速域名 Y
FileType 文件存储类型,默认为0(标准存储) 1为低频存储 Y
关于 UpHost ,这个是用来指定上传所使用的入口域名。在不指定的情况下,程序会自动根据空间来获取其所在的机房,并选择对应的上传加速域名作为上传域名。对于七牛的几大机房,默认的上传加速域名和其他源站域名分别如下表。
机房 上传加速域名 源站上传域名 https上传加速域名 https上传源站域名
华东 http://upload.qiniu.com http://up.qiniu.com https://upload.qbox.me https://up.qbox.me
华北 http://upload-z1.qiniu.com http://up-z1.qiniu.com https://upload-z1.qbox.me https://up-z1.qbox.me
华南 http://upload-z2.qiniu.com http://up-z2.qiniu.com https://upload-z2.qbox.me https://up-z2.qbox.me
北美 http://upload-na0.qiniu.com http://up-na0.qiniu.com https://upload-na0.qbox.me https://up-na0.qbox.me
当自行指定上传UpHost的时候,请根据空间所在机房,从上面的表中选择正确的上传CDN加速入口域名。
示例
1.上传本地文件lxzPV.mp4到空间test里面。
./qshell fput test lxzPV.mp4 lxzPV.mp4
输出:
Uploading lxzPV.mp4 => test : lxzPV.mp4 ...
Progress: 100%
Put file lxzPV.mp4 => test : lxzPV.mp4 success!
Hash: lvdkf6WttSbD00impJTDmWhawUYV
Fsize: 36622683 ( 34.93 MB )
MimeType: video/mp4
Last time: 15.62 s, Average Speed: 2345.1 KB/s
2.上传本地文件lxzPV.mp4到空间test里面,带前缀video/,并且指定MimeType参数为video/x-flv,并且指定上传域名华东源站上传不使用CDN,覆盖源文件并且使用低频存储。
./qshell fput test video/lxzPV.mp4 lxzPV.mp4 video/x-flv true 1 https://up.qiniu.com/
rput命令使用七牛支持的分片上传的方式来上传一个文件,一般文件大小较大的情况下,可以使用分片上传来有效地保证文件上传的成功。
格式
qshell rput <Bucket> <RemoteFile> <LocalFile>
示例
1.上传本地文件/Users/jemy/Documents/qiniu.mp4到空间if-pbl里面。
./qshell rput test lxzPV.mp4 lxzPV.mp4
输出:
Uploading lxzPV.mp4 => test : lxzPV.mp4 ...
Progress: 100.00%
Put file lxzPV.mp4 => test : lxzPV.mp4 success!
Hash: lvdkf6WttSbD00impJTDmWhawUYV
Fsize: 36622683 ( 34.93 MB )
MimeType: video/mp4
Last time: 10.75 s, Average Speed: 3407.9 KB/s
注:rput的其他使用方法和fput一致,一般用于大文件的上传。
列举七牛空间里面的所有文件
格式
qshell listbucket [-marker <Marker>] <Bucket> [<Prefix>] <ListBucketResultFile>
上面的命令中,可选的场景有三种:
(1)获取空间中所有的文件列表,这种情况下,可以直接指定 Bucket 参数和结果保存文件参数 ListBucketResultFile 即可。
qshell listbucket <Bucket> <ListBucketResultFile>
(2)获取空间中指定前缀的文件列表,这种情况下,除了指定(1)中的参数外,还需要指定 Prefix 参数。
qshell listbucket <Bucket> <Prefix> <ListBucketResultFile>
(3)该场景主要用在空间中文件列表较多导致大量列举操作超时或者是列举过程中网络异常导致列举操作失败的时候,这个时候列举失败的时候,程序会输出当时失败的marker,如果我们希望接着上一次的列举进度继续列举,那么可以在运行命令的时候,额外指定选项marker。
qshell listbucket -marker <Marker> <Bucket> <ListBucketResultFile>
参数
参数名 描述 可选参数
Bucket 空间名称,可以为私有空间或者公开空间名称 必选
Prefix 七牛空间中文件名的前缀,该参数为可选参数,如果不指定则获取空间中所有的文件列表 Y
ListBucketResultFile 获取的文件列表保存在本地的文件名,如果该参数指定为stdout,则会把结果输出到终端,一般可用于获取小规模文件列表测试使用 必选
示例
1.获取空间test里面的所有文件列表:
./qshell listbucket test test.list.txt
结果
41982247_01.jpg 948234 FokUV4denUM3KR229Jy1iKOAlzS6 15352271837040356 image/jpeg 0 0
upload_info.txt 2164525 FsuA_WZFl1THsJuEkfvAHFXtCAOu 15352271899333150 text/plain 0 0
video/lxzPV.mp4 36622683 lvdkf6WttSbD00impJTDmWhawUYV 15352271750775303 video/mp4 0 0
2.获取空间test里面的以video/为前缀的文件列表:
./qshell listbucket test 'video/' test.prefix.list.txt
删除文件
delete 命令用来从七牛的空间里面删除一个文件。
格式
qshell delete <Bucket> <RemoteFile>
参数
参数名 描述
Bucket 空间名称,可以为公开空间或者私有空间
RemoteFile 空间中的文件名
示例
删除空间test里面的视频qiniu.mp4
./qshell delete test qiniu.mp4
batchdelete命令用来根据一个七牛空间中的文件名列表来批量删除空间中的这些文件。
格式
qshell batchdelete [-force] <Bucket> <KeyListFile>
参数
参数名 描述
Bucket 空间名,可以为公开空间或私有空间
KeyListFile 文件列表文件,该列表文件只要保证第一列是文件名即可,每个列用\t分隔,可以直接使用listbucket的结果。
force选项
该选项控制工具的默认行为。默认情况下,对于批量操作,工具会要求使用者输入一个验证码,确认下要进行批量文件操作了,避免操作失误的发生。如果不需要这个验证码的提示过程,可以使用-force选项。
示例
1.在test空间中指定要的删除的文件列表test.prefix.list.txt进行删除:
video/lxzPV.mp4
video/AYjmD.mp4
video/MN14w.mp4
./qshell batchdelete test test.prefix.list.txt
2.删除空间test中的所有文件:
./qshell listbucket test test.list.txt
./qshell batchdelete -force test test.list.txt
帖子原帖永久链接:http://bbs.itzmx.com/thread-87548-1-1.html
页:
[1]