首页 > 其他分享 >使用s3cmd工具访问对象存储

使用s3cmd工具访问对象存储

时间:2024-01-16 12:07:42浏览次数:40  
标签:存储 -- 15M tower1 s3cmd 访问 分片 上传

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

某cloud的对象存储

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

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

下载和安装

下载

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

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_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工具访问对象存储_s3cmd工具_09

简单的使用命令

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

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

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

测试

上传速度

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

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

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

使用s3cmd工具访问对象存储_对象存储s3cmd客户端_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工具访问对象存储_s3上传文件校验_15

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

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

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

根据提示进行断点续传

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

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

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

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

传完后文件校验

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

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

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

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

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

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

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

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

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

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

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

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

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

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







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












标签:存储,--,15M,tower1,s3cmd,访问,分片,上传
From: https://blog.51cto.com/chier11/9268566

相关文章

  • Redis未授权访问漏洞
    前置知识Redis是一个由c语言编写的基于内存且可以持久化的日志型,key-value型数据库。之所以说他是基于内存而且可以持久化,因为它大部分数据都存储在内存中,这样提高了读写效率。而且还可以定时将内存数据同步到磁盘中。他虽然不是web服务,但是很多web应用依赖他,所以它也属于web安......
  • 【App Service】遇见本地访问Azure App Service应用慢或者是调用第三方接口慢的调试小
    问题描述当应用部署到微软云Azure后,如果遇见本地访问AzureAppService应用慢或者是调用第三方接口慢的时候,有什么好的调试方法呢?来判断具体时那一段请求耗时呢?问题解答当然浏览器本身的开发者工具(F12)就是一种非常好的工具。当时,当安装浏览器不方便时,curl就是一个非常好......
  • Mysql常用存储引擎以及区别?
    InnoDB:是Mysql的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操作,那么InnoDB存储引擎是比较合适的选择。MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作......
  • 简单的链式存储节点
    本文简述了两个实现了链式存储的节点类。第一个是单向链表的节点类Node<>,支持泛型支持访问后续节点实现如下,template<class_T>structNode{_Titem;Node*next=nullptr;};第二个是双向链表的节点类Biway_Node<>,支持泛......
  • 简单的顺序存储容器
    本文简述了一个实现了顺序存储的容器类(Array),并对其进行了验证。此Array类具有如下能力:支持泛型指定存储容量可用列表(initializer_list)初始化支持拷贝和移动语义可按值或引用传递此类的对象,也可作为值返回可用下标运算符访问元素支持基于范围的循环◆实现使用类模板......
  • 访问模式(visitor)
    1#include<iostream>2#include<string>3usingnamespacestd;45//访问者模式:核心叫做双重分发:两个多态:accept,visit67classXiaoMi;8classHuaWei;9classOppo;10classCellPhoneVisitor{11public:12virtualvoidvisit(Xia......
  • Mysql中设置只允许指定ip能连接访问(可视化工具的方式)
    场景Mysql中怎样设置指定ip远程访问连接:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/115308120前面设置root账户指定ip能连接访问是通过命令行的方式,如果通过可视化工具比如Navicat来实现。注:博客:https://blog.csdn.net/badao_liumang_qizhi实现1、使用N......
  • 一种基于偏移流和纯字符串流来存储和读取字符串列表的方法【C#】
    字符串的存储长度是可变的,在C#中,BinaryWriter和BinaryReader在Write,ReadStirng的时候,都在单个流中字符串的二进制数组前面加了一个二进制数组的长度信息,方便读取的时候,造成了记录字符串的流并不纯粹是字符串的内容。但是,有时候,我们可以,也可能必须记录纯粹的字符串的二进制内容,然后......
  • QTcpSocket发送存储QObject的QList
     #include<QTcpSocket>#include<QDataStream>#include<QByteArray>voidsendObjectList(QTcpSocket*socket,constQList<QObject*>&objectList){QByteArrayserializedData;QDataStreamout(&serializedData,QIODev......
  • Kubernetes 持久化存储
    Kubernetes持久化存储(nfs网络存储)Kubernetes提供了一种持久化存储的机制,允许将数据存储在容器之外,以便在容器重启、迁移或重新调度之后仍然可以访问。NFS(NetworkFileSystem)是一种网络存储协议,它允许多台计算机共享存储资源。在Kubernetes中,可以使用NFS作为持久化存储的一种选择......