本文中討論的物件儲存服務及介面,主要和AWS S3對標。
AWS S3提供的物件儲存業務,與傳統的POSIX規範相比,捨棄了很多特性,比如:
- 檔案型別
- 硬連結
- 軟連結
- 目錄
- 檔案相關的操作
- 追加寫
- 隨機寫
- 截斷
- 修改名稱
- 目錄相關的操作
- 建立目錄
- 修改名稱
- 刪除目錄
- 後設資料
- 時間
- crtime即建立時間,AWS S3定義了
Last-Modified
。 - ctime即後設資料變更的時間,AWS S3定義了
Last-Modified
。 - mtime即資料變更的時間,AWS S3定義了
Last-Modified
。 - atime即最近的訪問時間,AWS S3完全不支援。
- crtime即建立時間,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 data consistency model
- 華為雲 併發一致性說明