本文介紹OSS與文件系統在數據模型、數據獲取等方面的差異對比以及概念對應關系。
差異對比
下表為OSS與文件系統在數據模型、數據獲取、優勢以及劣勢的差異對比。
對比項 | OSS | 文件系統 |
數據模型 | OSS是一個分布式的對象存儲服務,提供的是一個Key-Value對形式的對象存儲服務。 | 文件系統是一種典型的樹狀索引結構。 |
數據獲取 | 根據Object的名稱(Key)唯一的獲取該Object的內容。 雖然您可以使用類似 | 一個名為 |
優勢 | 支持海量的用戶并發訪問。 | 支持文件的修改,例如修改指定偏移位置的內容、截斷文件尾部等。也支持文件夾的操作,例如重命名目錄、刪除目錄、移動目錄等非常容易。 |
劣勢 | OSS保存的Object不支持修改(追加寫Object需要調用特定的接口,生成的Object也和正常上傳的Object類型上有差別)。用戶即使只需要修改一個字節也需要重新上傳整個Object。 OSS可以通過一些操作來模擬類似文件夾的功能,但是代價非常高。例如重命名目錄,如果希望將test1目錄重命名成test2,則OSS的實際操作是將所有以 | 受限于單個設備的性能。訪問越深的目錄消耗的資源也越大,操作擁有很多文件的目錄也會非常慢。 |
從上述表格得知,不建議將OSS映射為文件系統。如果結合您的業務場景需要將OSS掛載為文件系統,建議只執行寫入文件、刪除文件、讀取文件操作。使用OSS應該充分發揮其優點,即海量數據處理能力,優先用來存儲海量的非結構化數據,例如圖片、視頻、文檔等。
概念對應
下表為OSS與文件系統的概念對應說明。
對象存儲 OSS | 文件系統 |
Object | 文件 |
Bucket | 主目錄 |
Region | 無 |
Endpoint | 無 |
AccessKey | 無 |
無 | 多級目錄 |
GetService | 獲取主目錄列表 |
GetBucket | 獲取文件列表 |
PutObject | 寫文件 |
AppendObject | 追加寫文件 |
GetObject | 讀文件 |
DeleteObject | 刪除文件 |
無 | 修改文件內容 |
CopyObject (目標文件和源文件相同) | 修改文件屬性 |
CopyObject(目標文件和源文件不同) | 復制文件 |
CopyObject+DeleteObject | 重命名文件 |