python--对象存储服务器

对象存储服务器

定义

也称对象存储服务,是一种专门用于存储和检索非结构数据的服务,这些服务通常用于存储大量文件。例如图像,视频,文档等,并支持通过http协议进行访问。

概念普及

最近公司的对象存储服务换到了华为云上,借着这次机会,
了解一下对象存储服务器常见的概念。

对象(Object)

对象概述
对象(Object)是OBS中数据存储的基本单位,一个对象实际是一个文件的数据与其相关属性信息(元数据)的集合体。用户上传至OBS的数据都以对象的形式保存在桶中。
对象的特点

  • 键(Key):
    对象有一个唯一的键(Key),用于标识该对象。键通常类似于文件名,但在对象存储中,它可以包含路径信息来模拟目录结构。
  • 值(Value):
    对象的值实际上就是文件的内容。对象存储服务将这些文件的内容存储在后端。
  • 元数据(Metadata):
    对象可以携带额外的信息,称为元数据。元数据可以包含关于对象的各种属性,如创建时间、大小、类型等。
  • 版本控制:
    对象存储服务通常支持版本控制,这意味着可以保留对象的不同版本,并能够恢复到先前的版本。
  • 生命周期管理:
    可以为对象设置生命周期规则,以自动化管理和清理数据,例如自动删除过期的对象或将其移动到成本更低的存储层。

桶(Bucket)

桶概述
桶(Bucket)是OBS中存储对象的容器。对象存储提供了基于桶和对象的扁平化存储方式,桶中的所有对象都处于同一逻辑层级,去除了文件系统中的多层级树形目录结构。

桶可以理解为一个文件夹或目录,目录中存的对象。但与传统文件系统的目录不同,
桶的特点:

  • 全局唯一性:
    在一个对象存储服务提供商的范围内,桶的名称必须是全局唯一的。
    这意味着即使是在不同的用户或账户之间,也不能有相同的桶名称。
  • 扁平化存储:
    对象存储服务通常采用扁平化的存储结构,这意味着所有的对象都直接存储在桶中,而不像文件系统那样有层次化的目录结构。
    对象可以通过键(Key)来唯一标识,键可以包含类似于路径的信息来模拟目录结构。
  • 可扩展性:
    桶可以存储大量的对象,并且可以随着数据的增长而自动扩展。
  • 权限控制:
    桶可以设置访问控制策略,比如私有访问、公共读取等,以控制谁可以访问桶中的对象。
  • 生命周期管理:
    可以为桶中的对象设置生命周期规则,例如自动删除过期的对象或者将旧对象移动到更低成本的存储层。
  • 事件通知:
    可以为桶配置事件通知,以便在某些事件(如新对象上传、对象删除等)发生时触发特定的动作。

终端节点(Endpoint)

OBS在不同区域的区域域名。终端节点提供了一个可访问的地址,客户端可以通过这个地址来访问对象存储服务。

访问域名

是桶在互联网中的域名地址
OBS桶访问域名的结构为:BucketName.Endpoint
其中BucketName为桶名称,Endpoint为桶所在区域的终端节点(区域域名)

知名的对象存储服务器提供商

微软云Azure:Microsoft Azure Blob Storage

from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient

#上传
blob = BlobClient.from_connection_string(conn_str=self._OSS_CONNECTION_STR, container_name=self._OSS_CONTAINER, blob_name=self._OSS_OBJECT_NAME + '/' + excelName)
#下载
blob = BlobClient.from_connection_string(conn_str=self._OSS_CONNECTION_STR, container_name=self._OSS_CONTAINER, blob_name=runtimeOssObjectName)

优势:提供多种存储类型,如Block Blobs、Page Blobs和Append Blobs,支持高吞吐量和低延迟。

华为云OBS:

华为云OBS python SDK官方文档

from obs import ObsClient,PutObjectHeader
obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server)

#上传
resp = obsClient.putFile(bucketName, objectKey, file_path, headers)
#下载
resp = obsClient.getObject(bucketName,objectKey,downloadPath)

优势:提供了高性能、高可靠性和全球分布等特点,并支持多种API和SDK。

阿里云OSS :

import oss2    
auth = oss2.Auth(self
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵钱孙李的赵

感谢各位衣食父母

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值