对象存储服务及接口探讨

本文将探讨对象存储服务及接口,主要与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。

涉及的对象操作,如下:

  • AppendObject
  • Callback
  • SelectObject
  • PutSymlink
  • GetSymlink

华为云OBS

文档主页见对象存储服务 OBS。

涉及的对象操作,如下:

  • 追加写对象
  • 修改对象元数据
  • 修改写对象
  • 截断对象
  • 重命名对象
  • 回调

火山引擎

文档主页见对象存储TOS。

涉及的对象操作,如下:

  • AppendObject
  • SetObjectMeta

腾讯云

文档主页见对象存储 COS。

涉及的对象操作,如下:

  • APPEND Object
  • SELECT Object Content

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

参考资料

  • Amazon S3数据一致性模型
  • 华为云并发一致性说明
热门手游下载
下载排行榜