存储对象服务介绍

Amazon S3(Simple Storage Service)对象存储出现得比较早且使用简单的RESTful API,于是成为了对象存储服务(Object Storage Service,OSS)业内的标准接口规范。它是一种面向 Internet 的存储服务,将数据作为对象存储在存储区中。一个对象由一个文件和可选的描述该文件的任何元数据组成。

常见的对象存储系统:

对象存储系统可以是一个提供海量存储服务的分布式架构。采用分布式集群方式工作,各功能节点、集群都可以独立扩容。对数据进行多设备冗余存储(至少三个以上节点),实现异地容灾和资源隔离。

  • Ceph:是一个分布式对象存储系统,具有高可用性、可扩展性和自修复性。
  • GlusterFS:是一个可扩展的分布式文件系统,旨在提供高可用性、可伸缩性只和数据可靠性。
  • Sheepdog:是一个开源的对象存储系统,旨在为虚拟机囚提供可靠的存储服务。
  • Lustre:是一个高性能的对象存储系统,用于大规模并行计算。
  • Swift:是一个用于OpenStack的分布式对象存储系统,具有高可用性、可扩展性和自修复性
  • Cinder:是一个用于OpenStack的块存储服务,提供高性能、低延时的块存储服务。
  • TFS:是一个分布式的对象存储系统,用于构建大规模的共享访问应用。
  • HDFS:是一个分布式文件系统,是大数据处理的重要基础设施。
  • MooseFS:是一个可扩展的分布式文件系统,具有高可用性、可伸缩性和数据可靠性。
  • FastDFS:是一个轻量级的分布式文件系统,用于共享访问、备份和镜像等应用。
  • MinIO:是一个高性能的分布式对象存储系统,用于云存储Q和共享访问等应用。中文文档:https://www.minio.org.cn/docs/minio/kubernetes/upstream/
  • MogileFS:是一个分布式的对象存储系统,具有高可用性、可扩展性和自修复性
  • JuiceFS 是一款面向 云原生Q设计的高性能分布式文件系统,介绍文档:htps:/iuicefs.com/docs/zh/community园introduction/

基本概念

对象存储呈现出来的是一个“桶”(bucket),你可以往“桶”里面放“对象(Object)”。这个对象包括三个部分:Key、Data、Metadata。

  • 存储空间(Bucket):存储空间是用户用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。
  • 对象(Object):对象是OSS存储数据的基本单元,也被称为OSS的文件。
    • Key:可以理解文件名,对象的全局唯一标识符(UID)
    • Metadata 元数据:元数据有点类似数据的标签,标签的条目类型和数量是没有限制的,可以是对象的各种描述信息。
    • Data 数据:也就是用户数据本体
  • 访问域名(Endpoint):表示OSS对外服务的访问域名。OSS以HTTP RESTful API的形式对外提供服务。
  • 访问密钥(AccessKey):简称AK,指的是访问身份验证中用到的AccessKeyId和AccessKeySecret。OSS通过对称加密的方法来验证某个请求的发送者身份。
    • AccessKey ID用于标识用户;
    • AccessKey Secret是用户用于加密签名字符串和OSS用来验证签名字符串的密钥,必须保密。

S3协议使用

maven引入jar包

  • pom.xml
    1
    2
    3
    4
    5
    <dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-s3</artifactId>
    <version>1.12.263</version>
    </dependency>