对象存储服务及接口探讨
2024-04-28 08:48:17 作者:佚名 本文将探讨对象存储服务及接口,主要与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数据一致性模型
- 华为云并发一致性说明