对象存储访问管理

一、前言

对象存储是一种以对象为中心的存储方式,将数据存储为对象而不是文件,在对象存储中,每个对象都有唯一的标识符,这个标识符是由系统自动生成的。与传统文件系统不同,对象存储中不需要使用文件夹或路径来查找对象,只需要使用对象的标识符即可。它具有高度可靠性、高扩展性和高性能等优点。对象存储作为一种低成本,近似无限容量的存储服务,在海量,异构存储方面应用广泛,各云厂商也都已上线各自的对象存储产品。

移动云的对象存储 产品叫EOS(Elastic Object Storage),是移动云为客户提供的一种海量空间的存储产品,具备高性能、高可靠、安全、低成本等特性,通过标准的S3接口提供非结构化数据(图片、音视频、文本等格式文件)的存储服务,满足用户在任何地方通过互联网对数据进行管理和访问的需求。

在这里插入图片描述

二、产品及使用

2.1、EOS特性

在这里插入图片描述

2.2、对象存储通用概念

  • Bucket(存储桶) :是用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储桶。Bucket作为对象的载体,实现了对象的高效组织和管理,每个Bucket都是独立的命名空间,不仅确保了对象存储的有序性,也方便了数据的分类和检索,扁平化的结构设计去除了复杂的树形目录结构,使得所有对象处于同一逻辑层级,简化了数据的存取过程。存储桶具有各种配置属性,包括地域、访问权限、存储类型等。可以根据实际需求,创建不同类型的存储桶来存储数据。同一个存储桶的内部是扁平的,没有文件系统的目录等概念,但是可以借助于文件系统的概念模糊简化理解。对象存储是基于REST风格HTTP和HTTPS协议的服务,因此我们可以通过URL(Uniform Resource Locator)来定位访问资源。

    Bucket不仅是存储单位,也是计费、权限控制和生命周期管理等多种高级功能的管理实体,这意味着用户可以通过设置Bucket的元数据来控制整个存储空间的政策,如数据保留时间、权限分配等,实现细粒度的数据治理。不同于传统的文件系统,Bucket具有无容量上限的特点,这使得我们无需担心存储空间的扩展问题,可以根据业务需求灵活调整存储规模。移动云的对象存储设置有三类桶存储类别,分别为:标准存储、温存储、冷存储,从而满足客户业务对存储性能、成本的不同诉求。

    在对象存储中,桶名必须是全局唯一的且不能修改,即用户创建的桶不能与自己已创建的其他桶名称相同,也不能与同帐号、其他帐号及帐号下的所有IAM用户创建的桶名称相同。桶所属的区域在创建后也不能修改。每个桶在创建时都会生成默认的桶ACL(Access Control List,访问控制列表),桶ACL的每项包含了对被授权用户授予什么样的权限,如读取权限、写入权限等。用户只有对桶有相应的权限,才可以对桶进行操作,如创建、删除、显示、设置桶ACL等。

在这里插入图片描述

  • 对象(Object):是对象存储中数据存储的基本单位,也被称为文件,而一个对象实际是一个文件的数据与其相关属性信息(元数据)的集合体。对象存储将数据大小分成一系列的,然后将每个块包装成一个对象。每个块都具有自己的存储位置,并且可以独立于其他块进行读写操作。这使得对象存储可以支持大型数据文件的存储。用户上传至对象存储的数据都以对象的形式保存在桶中。通常,你可将对象等同于文件来进行管理,但是对象存储并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据,对象存储提供了一种方式模拟文件夹。通过在对象的名称中增加“/”,例如“test/123.jpg”。此时,“test”就被模拟成了一个文件夹,“123.jpg”则模拟成“test”文件夹下的文件名了,而实际上,对象名称(Key)仍然是“test/123.jpg”。对象包括了KeyMetadataData三部分:
  • Key:键值(对象名),即对象的名称,是一组经过UTF-8编码的长度大于0且不超过1024的字符序列。一个桶里的每个对象必须拥有唯一的对象键值。在各语言 SDK 中,ObjectKey、Key 以及 ObjectName 是同一概念,均表示对 Object 执行相关操作时需要填写的 Object 名称。
  • Metadata:元数据,即对象的描述信息,包括系统元数据用户元数据,这些元数据以键值对(Key-Value)的形式被上传到对象存储中,元数据通常包括对象的名称和大小以及创建时间和修改时间等基本信息。存储元数据在查询对象时可以大大加快访问速度。系统元数据由对象存储自动产生,在处理对象数据时使用,包括Date,Content-length,Last-modify,Content-MD5等。用户元数据由用户在上传对象时指定,是用户自定义的对象描述信息。
  • Data:数据,即文件的数据内容。对象存储可以使用冗余备份技术来保障数据的完整性和可靠性。每个数据块都会进行备份,如果有一个存储节点出现了问题,备份节点可以迅速取代它。这样,即使在某些数据块出现问题时,数据仍然可以被访问。对象存储的底层是分布式存储技术。这意味着数据会分散存储在多个存储节点上,这些节点将共同构成存储系统。这种分布式存储技术意味着对象存储系统可以在任意时刻增加或减少存储节点,而不需要对整个存储系统进行重新配置。
  • 并行文件系统(Parallel File System):是对象存储服务(Object Storage Service,OBS)提供的一种经过优化的高性能文件系统,提供毫秒级别访问时延,以及TB/s级别带宽和百万级别的IOPS,能够快速处理高性能计算(HPC)工作负载。作为对象存储服务的子产品,并行文件系统支持用户按照标准的OBS接口读取数据。也支持通过部署在弹性云服务器中的PFS客户端(obsfs工具),按照POSIX文件语义读写数据;通过obsfs用户可以将创建的并行文件系统挂载到云端Linux服务器上,并能像操作本地文件系统一样对并行文件系统内的文件和目录进行在线处理,包括:创建和删除文件/目录,重命名文件/目录,修改写文件等操作。obsfs是对象存储服务(Object Storage Service,OBS)提供的一款基于FUSE的文件系统工具,用于将OBS并行文件系统挂载至Linux系统,让用户能够在本地像操作文件系统一样直接使用OBS海量的存储空间。对于原本使用本地文件系统存储数据的用户,如果希望把数据存储在OBS上但不改变数据的访问方式,可使用obsfs。
  • 访问密钥(AK/SK):对象存储支持通过AK/SK认证方式进行认证鉴权,即使用Access Key ID(AK)/Secret Access Key(SK)加密的方法来验证某个请求发送者身份。当您使用对象存储提供的API进行二次开发并通过AK/SK认证方式完成认证鉴权时,需要按照对象存储定义的签名算法来计算签名并添加到请求中。对象存储支持使用永久AK/SK鉴权,也支持通过临时AK/SK和securitytoken进行认证鉴权。其中,Access Key Id(AK):是访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名,主用于标识用户。Secret Access Key(SK):与访问密钥ID结合使用的私有访问密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。
  • 终端节点(Endpoint):是对象存储为每个区域对外服务的访问域名,即对外提供一个EOS的访问入口/访问代理,终端节点可以理解为对象存储在不同区域的区域域名,用于处理各自区域的访问请求,EOS 以 HTTP RESTful API 的形式对外提供服务。另外,对象存储会为每一个桶分配默认的访问域名。访问域名是桶在互联网中的域名地址,可应用于直接通过域名访问桶的场景,比如:云应用开发、数据分享等。

2.3、开源对象存储服务

开源对象存储服务是指基于开源技术,完全或部分开发源代码的、提供对象存储服务的存储系统。常见的开源对象存储服务有:

1)Ceph
在这里插入图片描述

Ceph 是一个广泛应用、高可用性、可扩展的分布式存储系统。它提供对象、块和文件三种类型的存储,支持 RESTful 和 S3 访问协议。Ceph 的优点在于高可用性、数据安全、容错能力和低成本等方面。Ceph 作为一种免费开源的对象存储服务,获得了广泛的应用。作为具有商业经验的解决方案提供商,Red Hat 也提供了专业的 Ceph 集成和实施服务。

2)OpenStack Swift
在这里插入图片描述

Swift 是 OpenStack 的核心组成部分之一,被设计成能够处理大规模的数据存储需求,它具备极高的容错性和扩展性,可以轻松地跨越多个数据中心部署,为用户提供了对象存储服务,主要用于存储非结构化数据,如图片、视频、文档等。Swift 针对多租户和高并发性进行了优化,是备份、web和移动内容以及任何其他可以无限增长的非结构化数据的理想选择。它提供了一个简单的、基于REST的API和支持 S3 API,具有高可用性和可扩展性等特点。OpenStack Swift产品被许多企业使用并成功应用在各种场景下,如大数据备份、金融访问数据、科学计算等。Swift通过一个称为“代理服务器”的组件来处理客户端请求,代理服务器负责将请求路由到正确的节点上。数据存储在由多个物理服务器组成的集群中,这些服务器按照一定的规则被划分为分区。为了保证数据的分布均匀,Swift采用了环状一致性哈希算法来确定数据的位置,更多参看swift官方文档。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)Minio
在这里插入图片描述

Minio 是一个基于 Go 语言开发的分布式对象存储系统,支持 S3 协议,可以在本地环境和公有云环境中使用。Minio 具有易用性高、可扩展性好、性能优良等优点。它可以与 Kubernetes、Docker 等工具集成,支持 HDFS、GlusterFS 等其他存储后端。

三、对象存储管理

3.1、S3cmd 命令行工具

移动云对象存储 (EOS) 支持 S3cmd 命令行工具,详细说明可参考官方。用户可以使用该工具,对 EOS 进行各种操作,包括且不限于存储桶管理、上传对象、下载对象等。下载参看:github:s3tools、s3cmd,教程参看:s3tools使用说明;

yum install s3cmd -y  #需要Python 2.6或更高版本。S3cmd version 2也与Python 3.x兼容
s3cmd --version  #S3cmd默认读取用户主目录下的.s3cfg文件,可以通过-c指定其他配置文件
vi ~/.s3cfg[default]
access_key = *** # 修改为你的Access Key
secret_key = *** # 修改为你的Secret Key
host_base = ***.***.***.*** # 修改为你对象服务地址
host_bucket = ***.***.***.***/%(bucket) # 修改为你对象服务地址
use_https = False  # 是否使用httpsbucket_location = cn #  创建bucket时的location
enable_multipart = True #  默认开启分段上传,超过15M大小的都会采用分段上传
encrypt = False #  关闭加密
human_readable_sizes = True # 开启后ls对象时以人类可读的方式K/M/G等展示
# 象大小信息
multipart_chunk_size_mb = 15  # 默认最大段大小,小于rgw的
# rgw_multipart_min_part_size配置项中
# 设置的大小无效
multipart_max_chunks = 10000  # 默认最大分段数,大于rgw的rgw_multipart_part_upload_limit配置项无效
signature_v2 = False  # 是否启用V2签名
storage_class = ** # 存储级别#语法
s3cmd [options] COMMAND [parameters]#示例1:查看对象/桶
s3cmd --access_key <your-access-key> --secret_key <your-secret-key> ls
s3cmd ls [s3://BUCKET[/PREFIX]]

3.2、S3 Browser

S3 Browser是一个支持S3接口服务的免费windows客户端工具。用户可下载S3 Browser工具进行使用。工具介绍可参考官方网站介绍,网址为:https://s3browser.com/,文档参看:s3browser
在这里插入图片描述
在这里插入图片描述

3.3、Rclone数据迁移备份

Rclone是一款免费的云存储管理工具,能够像使用本地文件一样便捷的使用云存储,被誉为“云存储界的瑞士军刀”。你可以使用Rclone工具,对移动云对象存储EOS进行数据导入、数据同步、迁移备份等操作。

3.4、Restic 数据备份

Restic 是一款快速、高效、安全的跨平台备份工具。Restic 使用加密技术来保证您的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。Restic 支持增量备份,可节省宝贵的存储空间。

3.5、云厂商的管理工具

移动云:eos-browser 是一款用于访问和管理对象存储 (Elatic Object Storage,EOS) 的可视化桌面工具,支持完整的桶管理和对象管理操作。
腾讯云:COSBrowser 是腾讯云对象存储 COS 推出的可视化界面工具,让您可以使用更简单的交互,轻松实现对 COS 资源的查看、传输和管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/61508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java】二叉树:数据海洋中灯塔式结构探秘(上)

个人主页 &#x1f339;&#xff1a;喜欢做梦 二叉树中有一个树&#xff0c;我们可以猜到他和树有关&#xff0c;那我们先了解一下什么是树&#xff0c;在来了解一下二叉树 一&#x1f35d;、树型结构 1&#x1f368;.什么是树型结构&#xff1f; 树是一种非线性的数据结构&…

Lucene(2):Springboot整合全文检索引擎TermInSetQuery应用实例附源码

前言 本章代码已分享至Gitee: https://gitee.com/lengcz/springbootlucene01 接上文。Lucene(1):Springboot整合全文检索引擎Lucene常规入门附源码 如何在指定范围内查询。从lucene 7 开始&#xff0c;filter 被弃用&#xff0c;导致无法进行调节过滤。 TermInSetQuery 指定…

xiaolin coding 图解网络笔记——HTTP篇

1. HTTP 是什么&#xff1f; HTTP 是超文本传输协议&#xff08;HyperText Transfer Protocol&#xff09;&#xff0c;一个用在计算机世界里专门在【两点】之间【传输】文字、图片、音频、视频等【超文本】数据的【约定和规范】。 2. HTTP 常见的状态码有哪些&#xff1f; …

51c深度学习~合集8

我自己的原文哦~ https://blog.51cto.com/whaosoft/12491632 #patchmix 近期中南大学的几位研究者做了一项对比学习方面的工作——「Inter-Instance Similarity Modeling for Contrastive Learning」&#xff0c;主要用于解决现有对比学习方法在训练过程中忽略样本间相似关系…

力扣面试经典 150(下)

文章目录 二叉树的层次遍历82. 二叉树的右视图83. 二叉树的层平均值84. 二叉树的层序遍历85. 二叉树的锯齿形层序遍历 二叉搜索树86. 二叉搜索树的最小绝对差87. 二叉搜索树中第K 小的元素88. 验证二叉搜索树 图89. 岛屿数量90. 被围绕的区域91. 克隆图92. 除法求值93. 课程表9…

Web3的核心技术:区块链如何确保信息安全与共享

在互联网不断迭代的进程中&#xff0c;Web3被视为下一代互联网的核心发展方向&#xff0c;其目标是构建更加开放、安全、去中心化的数字生态。在这一过程中&#xff0c;区块链作为核心技术&#xff0c;为信息安全与共享提供了全新解决方案。本文将深入探讨区块链如何在Web3中实…

Leetcode 生命游戏

以下是上述Java代码的算法思想及其逻辑的中文解释&#xff1a; 算法思想 这段代码实现了LeetCode第289题“生命游戏”的解决方案。核心思想是&#xff1a; 利用原地修改的方式&#xff08;in-place&#xff09;存储下一状态的变化&#xff1a; 通过引入额外的状态值&#xff0…

JavaScript 中 arguments、类数组与数组的深入解析

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;什么是 arguments 对象2.1 arguments 的定义2.2 arguments 的特性2.3 使用场景 &#x1f4af;深入了解 arguments 的结构3.1 arguments 的内部结构arguments 的关键属性 3.2 类数组…

设计模式-创建型-抽象工厂模式

1.概念 工厂方法模式只能生产一个产品系列&#xff0c;抽象工厂可以生产多个产品系列 2.作用 多个具体产品组成一个产品族&#xff08;产品系列&#xff09;&#xff0c;一个具体工厂负责生产一个产品族 3.应用场景 系统所需产品间由依赖关系&#xff0c;可以划分为同一产…

结合第三方模块requests,文件IO、正则表达式,通过函数封装爬虫应用采集数据

#引用BeautifulSoup更方便提取html信息&#xff1b;requests模块&#xff0c;发生http请求&#xff1b;os模块&#xff0c;文件写入import requests from bs4 import BeautifulSoup import os#当使用requests库发送请求时&#xff0c;如果不设置User - Agent&#xff0c;默认的…

操作系统基础——针对实习面试

目录 操作系统基础什么是操作系统&#xff1f;简述其主要功能请举例几种不同类型的操作系统&#xff0c;并简要说明它们的特点 操作系统基础 什么是操作系统&#xff1f;简述其主要功能 一、操作系统的定义 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff…

深度学习基础练习:代码复现transformer重难点

2024/11/10-2024/11/18: 主要对transformer一些比较难理解的点做了一些整理&#xff0c;希望对读者有所帮助。 前置知识&#xff1a; 深度学习基础练习&#xff1a;从pytorch API出发复现LSTM与LSTMP-CSDN博客 【神经网络】学习笔记十四——Seq2Seq模型-CSDN博客 【官方双语】一…

ESLint的简单使用(js,ts,vue)

一、ESLint介绍 1.为什么要用ESLint 统一团队编码规范&#xff08;命名&#xff0c;格式等&#xff09; 统一语法 减少git不必要的提交 减少低级错误 在编译时检查语法&#xff0c;而不是等js引擎运行时才检查 2.eslint用法 可以手动下载配置 可以通过vue脚手架创建项…

探索PDFMiner:Python中的PDF解析利器

文章目录 **探索PDFMiner&#xff1a;Python中的PDF解析利器**1. 背景介绍&#xff1a;为何选择PDFMiner&#xff1f;2. PDFMiner是什么&#xff1f;3. 如何安装PDFMiner&#xff1f;4. 简单库函数使用方法4.1 提取文本4.2 获取页面布局信息4.3 提取表格数据4.4 提取图像 5. 应…

徒手从零搭建一套ELK日志平台

徒手从零搭建一套ELK日志平台 日志分析的概述日志分析的作用主要收集工具集中式日志系统主要特点采集日志分类ELK概述初级版ELK终极版ELK高级版ELKELK收集日志的两种形式 搭建ELK平台Logstash工作原理Logstash核心概念环境准备安装部署docker添加镜像加速器安装部署Elasticsear…

02 —— Webpack 修改入口和出口

概念 | webpack 中文文档 | webpack中文文档 | webpack中文网 修改入口 webpack.config.js &#xff08;放在项目根目录下&#xff09; module.exports {//entry设置入口起点的文件路径entry: ./path/to/my/entry/file.js, }; 修改出口 webpack.config.js const path r…

23种设计模式-模板方法(Template Method)设计模式

文章目录 一.什么是模板方法模式&#xff1f;二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图&#xff1a; 模板方法设计模式类图 一.什么是模板方法模…

MySQL45讲 第二十五讲 高可用性深度剖析:从主备原理到策略选择

文章目录 MySQL45讲 第二十五讲 高可用性深度剖析&#xff1a;从主备原理到策略选择一、MySQL 主备基础原理&#xff08;一&#xff09;主备关系与数据同步&#xff08;二&#xff09;主备切换流程 二、主备延迟分析&#xff08;一&#xff09;主备延迟的定义与计算&#xff08…

VuePress v2 快速搭建属于自己的个人博客网站

目录 为什么用VuePress&#xff1f; 一、前期准备 Node.js 使用主题快速开发 二、VuePress安装 三、个性化定制 修改配置信息 删除不需要的信息 博客上传 四、部署 使用github快速部署 初始化仓库 本地配置 配置github的ssh密钥 部署 为什么用VuePress&#xff…

PostgreSQL常用时间函数与时间计算提取示例说明

文章目录 常用函数与常量to_timestamp(字符串转时间戳、数字转时间戳)date与to_date(字符串转日期、时间戳转日期)interval(时间计算)基本操作与格式混合运算 to_char(各种时间转字符串)extract(提取时间字段&#xff0c;年月日时分秒&#xff0c;周、季度&#xff0c;第几周、…