近两天在测试某cloud的对象存储,使用客户端s3cmd工具在centos下部署。部署过程和常用功能如下:
某cloud的对象存储
下载和安装
下载
地址:https://s3tools.org/download
本次使用的是s3cmd-2.4.0.tar.gz文件。
安装
先解决依赖关系---- yum install python-dateutil ,否则会提示缺少模块
下载tar.gz只需要解压即使用,但在使用前需配置下ak、sk、访问地址。
解压: tar zxf s3cmd-2.4.0.tar.gz
查看并配置: 进入到目录后,执行 ./s3cmd --configure
配置过程完成,这里新增一个路径修改(可以不用,方便使用还是要添加路径直接访问s3cmd这个命令)
cp -rf s3cmd-2.4.0/ /usr/local/s3cmd
ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd
简单的使用命令
命令很多,包括桶(存储空间)、访问权限和策略、文件操作等,此处简单带过
测试
上传速度
上传使用默认分片单位--15M,下载不分片。
s3cmd ls
开始上传文件到butket-tower1桶中
s3cmd put rhel-server-7.6-x86_64-dvd.iso s3://bucket-tower1
下载速度
s3cmd ls
开始下载文件到当前目录中,也可以指定其他目录
s3cmd get s3://bucket-tower1/CentOS-7-x86_64-Everything-2207-02.iso
下载到指定目录
s3cmd get s3://bucket-tower1/aa /home/
断点续传
开始上传,过程中使用ctrl+c中断上传
s3cmd put rhel-server-7.6-x86_64-dvd.iso s3://bucket-tower1
根据提示的upload-id继续上传。注意格式
s3cmd --upload-id 2~7Tjg7nMIZBTX-i_CPMr-6f0DoUUxBOh put rhel-server-7.6-x86_64-dvd.iso s3://bucket-tower1
断点续传主要是在上传过程中,对于分片上传中断后可以继续当前中断分片开始上传。通过例子观察上传分片变化和传输任务匹配【注意续传的upload-id信息】
上图传第四个的时候中断了
在web页面查看文件分片数量,显示3个
根据提示进行断点续传
上图中前三片已经上传,继续上传只校验md5和大小后就直接跳过,从第4片开始上传。 下图的分片也继续增加……
传完后文件校验
对上传完成的数据进行md5校验。由于上传时分片--15M进行的,因此分两种情况,1、小于15M的文件直接验证;2、大于15M的文件也可以通过s3cmd ls --list-md5比对。
非分片的小于15M文件上传校验
存储web页面的etag信息,和主机系统上查到的md5信息一致。
分片的大于15M文件上传校验
大于15M的校验 s3cmd ls --list-md5 s3://bucket-tower1/*
大于15M文件上传,直接使用存储web显示的etag值是无法比对的,只能看到上传的片数一致,如下
上传目录(含不存在的多级目录)
上传多级不存在的目录
s3cmd --recursive put mydir s3://bucket-tower1/noexistdir/noexistdir/
更多s3cmd命令可以通过帮助文档解决。