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

· 浏览次数 : 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即创建

【问题排查篇】一次业务问题对 ES 的 cardinality 原理探究

小编工作中负责业务的一个服务端系统,使用了 Elasticsearch 服务做数据存储,业务运营人员反馈,用户在使用该产品时发现,用户后台统计的订单笔数和导出的订单笔数不一致!对此进行排查并进行总结

我对微服务架构的简单理解

我理解的微服务,就是把以前一个接口一个数据库里实现的逻辑,改变为通过一级或多级远程调用去不同的服务器和数据库获取数据,然后完成整个逻辑。这也算是分布式开发技术了,每次业务要保证在多级远程调用过程中,数据的一致性,在存储数据时,因为是分不同数据库,不同服务器保存数据,有可能一个请求,要保存或更新a、b...

队列结构认识

目录什么是队列?消息处理的触发机制异步消息队列的概念常见的异步消息队列框架 什么是队列? 队列数据结构的特点: 跟排队一样:先进先出。 队列的应用场景: 一般在业务中,常常把队列作为一种中间件服务,比如当要处理大量消息的时候,往往是把这些消息放入一个队列存储,这时并不需要立即对它进行处理得到结果。

对象业务的修改数据接口

依据AWS S3,没有定义修改数据的操作,修改数据时,均需要重新上传对象的数据和元数据。 本文有如下假定: 对象存储服务基于文件语义实现。 接口定义 依据前述,业界主流对象存储服务比如AWS S3并未定义修改对象数据的操作,而国内的各家公有云对象存储服务,提供了对象的修改对象数据的操作。 国内的公有

对象业务的追加写接口

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

基于 Istio 的灰度发布架构方案实践之路

灰度发布,是指能够平滑过渡的一种发布方式。尤其是对于toB业务和SAAS类平台,很多情况需要根据租户或用户维度进行灰度控制,实现业务上的A/Best功能。尽管几经迭代,但仍存在系统入侵性强、新版本接口异常等问题。因此,探索了一条基于Istio的服务流量治理方案下的灵活可配置的灰度发布方案。

RALB负载均衡算法的应用

搜索推荐算法架构为京东集团所有的搜索推荐业务提供服务,实时返回处理结果给上游。部门各子系统已经实现了基于CPU的自适应限流,但是Client端对Server端的调用依然是RR轮询的方式,没有考虑下游机器性能差异的情况,无法最大化利用集群整体CPU,存在着Server端CPU不均衡的问题。

体验.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