近两天在测试某cloud的对象存储,使用客户端s3cmd工具在centos下部署。部署过程和常用功能如下:

某cloud的对象存储

使用s3cmd工具访问对象存储_s3cmd工具

使用s3cmd工具访问对象存储_s3上传文件校验_02

下载和安装

下载

地址:https://s3tools.org/download

使用s3cmd工具访问对象存储_s3断点续传_03

使用s3cmd工具访问对象存储_s3cmd工具_04

    本次使用的是s3cmd-2.4.0.tar.gz文件。

安装

先解决依赖关系---- yum install python-dateutil ,否则会提示缺少模块

使用s3cmd工具访问对象存储_s3上传文件校验_05

下载tar.gz只需要解压即使用,但在使用前需配置下ak、sk、访问地址。

解压:  tar  zxf  s3cmd-2.4.0.tar.gz

查看并配置:   进入到目录后,执行 ./s3cmd --configure

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_06

使用s3cmd工具访问对象存储_s3上传文件校验_07

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_08

配置过程完成,这里新增一个路径修改(可以不用,方便使用还是要添加路径直接访问s3cmd这个命令)

cp -rf s3cmd-2.4.0/ /usr/local/s3cmd
ln -s /usr/local/s3cmd/s3cmd /usr/bin/s3cmd

使用s3cmd工具访问对象存储_s3断点续传_09

简单的使用命令

    命令很多,包括桶(存储空间)、访问权限和策略、文件操作等,此处简单带过

使用s3cmd工具访问对象存储_s3cmd工具_10

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_11

测试

上传速度

        上传使用默认分片单位--15M,下载不分片。   

s3cmd ls   
开始上传文件到butket-tower1桶中
s3cmd put rhel-server-7.6-x86_64-dvd.iso s3://bucket-tower1

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_12

使用s3cmd工具访问对象存储_s3断点续传_13

下载速度

s3cmd ls   
开始下载文件到当前目录中,也可以指定其他目录
s3cmd get s3://bucket-tower1/CentOS-7-x86_64-Everything-2207-02.iso
下载到指定目录
s3cmd get  s3://bucket-tower1/aa  /home/

使用s3cmd工具访问对象存储_s3断点续传_14

断点续传

开始上传,过程中使用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信息

使用s3cmd工具访问对象存储_s3cmd工具_15

上图传第四个的时候中断了

在web页面查看文件分片数量,显示3个

使用s3cmd工具访问对象存储_s3cmd工具_16

根据提示进行断点续传

使用s3cmd工具访问对象存储_s3上传文件校验_17

上图中前三片已经上传,继续上传只校验md5和大小后就直接跳过,从第4片开始上传。 下图的分片也继续增加……

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_18

使用s3cmd工具访问对象存储_s3cmd工具_19

传完后文件校验

对上传完成的数据进行md5校验。由于上传时分片--15M进行的,因此分两种情况,1、小于15M的文件直接验证;2、大于15M的文件也可以通过s3cmd ls --list-md5比对。

非分片的小于15M文件上传校验

使用s3cmd工具访问对象存储_s3cmd工具_20

存储web页面的etag信息,和主机系统上查到的md5信息一致。

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_21

分片的大于15M文件上传校验

大于15M的校验 s3cmd ls --list-md5 s3://bucket-tower1/*

使用s3cmd工具访问对象存储_s3上传文件校验_22

大于15M文件上传,直接使用存储web显示的etag值是无法比对的,只能看到上传的片数一致,如下

使用s3cmd工具访问对象存储_s3断点续传_23

上传目录(含不存在的多级目录)

上传多级不存在的目录
s3cmd --recursive  put mydir  s3://bucket-tower1/noexistdir/noexistdir/

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_24

使用s3cmd工具访问对象存储_s3断点续传_25







更多s3cmd命令可以通过帮助文档解决。