对象存储服务中对象业务的非标接口

· 浏览次数 : 0

小编点评

**对象存储服务及接口** **与 AWS S3 对比:** | 特性 | AWS S3 | 本地 S3 | |---|---|---| | 文件类型 | 多种 | 单一 | | 文件操作 | 添加、修改、删除、截断、创建目录、修改名称 | 单一 | | 元数据 | Last-Modified | mtime | | 对象状态 | 可访问 | 仅可读 | | 元数据支持 | xattrUGOACLAWS | 无 | **对象存储服务提供商的接口:** * 提供必要的对象业务接口,包括上传、下载、修改元数据等。 * 提供一些扩展类的接口,方便传统IT应用快速从文件存储切换至对象存储。 **非标接口的兼容性:** * 对象特性的兼容性,如ETag的计算策略、并发操作等。 * 需要考虑对象状态、元数据支持等因素。 **其他信息:** * AWS S3 提供 Last-Modified 时间戳,表示对象最后修改的时间,方便数据版本管理。 * AWS S3 支持 append 和 replace 对象操作,允许逐个添加或替换数据块。

正文

本文中讨论的对象存储服务及接口,主要和AWS S3对标。
AWS S3提供的对象存储业务,与传统的POSIX规范相比,舍弃了很多特性,比如:

  • 文件类型
    • 硬链接
    • 软链接
    • 目录
  • 文件相关的操作
    • 追加写
    • 随机写
    • 截断
    • 修改名称
  • 目录相关的操作
    • 创建目录
    • 修改名称
    • 删除目录
  • 元数据
    • 时间
      • crtime即创建时间,AWS S3定义了Last-Modified
      • ctime即元数据变更的时间,AWS S3定义了Last-Modified
      • mtime即数据变更的时间,AWS S3定义了Last-Modified
      • atime即最近的访问时间,AWS S3完全不支持。
    • xattr
    • UGO
    • ACL

AWS S3定义了对象的元数据,但不支持修改,使用时稍显不方便。

各对象存储的服务提供商,从支撑客户业务诉求的角度出发,除对标AWS S3提供了必要的对象业务接口,同时提供了一些扩展类的接口,方便传统的IT应用快速从文件存储切换至对象存储,照顾存量IT应用的使用习惯。

实现非标接口时,需要考虑对象特性的兼容性,比如:

  • 普通对象
  • 多段对象
  • ETag的计算策略
  • WORM
  • 加密存储
  • 多版本
  • 生命周期
  • 分级
  • 元数据
  • 并发操作下的一致性
  • 并发操作下的事务

其它方面可参见基于文件语义实现S3接口语义的注意事项

阿里云OSS

文档主页见对象存储 OSS

涉及的对象操作,如下:

华为云OBS

文档主页见对象存储服务 OBS
涉及的对象操作,如下:

火山引擎

文档主页见对象存储TOS

涉及的对象操作,如下:

腾讯云

文档主页见对象存储 COS

涉及的对象操作,如下:

ECS

文档主页见ECS Data Access Guide 3.5.0.2

涉及的对象操作,如下:

  • Updating a byte range within an object
  • Overwriting part of an object
  • Appending data to an object
  • Reading multiple byte ranges within an object

参考资料

与对象存储服务中对象业务的非标接口相似的内容:

对象存储服务中对象业务的非标接口

本文中讨论的对象存储服务及接口,主要和AWS S3对标。 AWS S3提供的对象存储业务,与传统的POSIX规范相比,舍弃了很多特性,比如: 文件类型 硬链接 软链接 目录 文件相关的操作 追加写 随机写 截断 修改名称 目录相关的操作 创建目录 修改名称 删除目录 元数据 时间 crtime即创建

体验.NET与文件存储服务MinIO

对象文件存储服务(OSS)主要用于存储零散的文件,和直接存储到本地文件系统中相比,有以下的几个优势: 跨服务器可用 兼容Amazon S3 API 横向扩容 高可用 支持加密 MinIO就是一个高性能的文件服务,我们使用.NET来操作一下。 部署MinIO 最简单的办法,就是在Docker上运行Mi

【Azure 存储服务】使用 AppendBlobClient 对象实现对Blob进行追加内容操作

问题描述 在Azure Blob的官方示例中,都是对文件进行上传到Blob操作,没有实现对已创建的Blob进行追加的操作。如果想要实现对一个文件的多次追加操作,每一次写入的时候,只传入新的内容? 问题解答 Azure Storage Blob 有三种类型: Block Blob, Append Bl

Biwen.Settings添加对IConfiguration&IOptions的集成支持

Biwen.Settings 是一个简易的配置项管理模块,主要的作用就是可以校验并持久化配置项,比如将自己的配置存储到数据库中,JSON文件中等 使用上也是很简单,只需要在服务中注入配置, 比如我们有一个GithubSetting的配置项,我们只需要定义好对象然后注入到Service中即可: [De

[转帖]Ceph简单搭建

https://cloud.tencent.com/developer/article/1643322 Ceph基础介绍 ​ Ceph是一个可靠地、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备存储和文件系统服务。在虚拟化领域里,比较常用到的是Ce

[转帖]ceph学习一之基础知识

https://www.cnblogs.com/liuxingxing/p/13551406.html 一、ceph简介 Ceph是一个可靠、自动重均衡、自动恢复的分布式存储系统,根据场景划分可以将Ceph分为三大块,分别是对象存储、块设备和文件系统服务。块设备存储是Ceph的强项。 Ceph的主要

初步搭建一个自己的对象存储服务---Minio

MinIO 是一个高性能的对象存储解决方案,类似于 Amazon S3,但它是开源的。MinIO 可以用于存储大规模的不结构化数据,比如照片、视频、备份和日志文件等。它设计为兼容 Amazon S3 API,因此可以很容易地与现有的使用 S3 的应用程序集成。

对象业务的追加写接口

类似文件的追加写操作,在对象的末尾增加新的数据内容。 本文有如下假定: 对象存储服务基于文件语义实现。 使用PUT方式上传的对象,内部使用一个文件和对应的元数据来承载。 使用多段方式上传的对象,内部使用多个段文件、元数据来承载,其中每个段文件可管理独有的元数据。 下面讨论追加写操作时的方案和注意事项

对象存储?CRUD Boy实现对文件的增删改查

大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 以下是正文! # 对象存储是什么? >对象存储是一种数据存储方式,它将数据分割成不同的对象,并为每个对象分配一个唯一的标识符,用于访问和操作数据。这些

对象存储只能按文件名搜索,你out了吧

摘要:不少大公司的一个桶里都是几亿几十亿的对象,那他们都是怎么检索的呢? 本文分享自华为云社区《对象存储只能按文件名搜索? 用 DWR + ElasticSearch 实现文件名、文件内容、图片文字的模糊搜索!》,作者:云存储开发者支持团队 。 众所周知,由于对象存储的架构限制,要想检索对象存储里的