兼容 S3 的對象儲存系統
有沒有人遇到過幾乎 100% 與 Amazon S3 RESTful API 兼容的對象儲存系統?
我所追求的是位於任何(最好是 POSIX)文件系統之上的層,它提供 Amazon S3 風格的 RESTful API 來儲存(
PUT
)、檢索(GET
)、統計(HEAD
)和刪除(DELETE
),並具有良好的身份驗證。也歡迎商業項目/想法。
筆記:
到目前為止,我已經嘗試過Eucalyptus和Cumulus;其中 Eucalyptus 似乎盲目地稱自己為 S3 兼容。響應 XML 文件完全不兼容,並且在某些地方不完整,根本沒有 XML 文件。Cumulus 設法保持響應文件非常相似,但似乎忘記了數據完整性!
讓我解釋一下後一部分:Eucalyptus 和 Cumulus 都不支持 Amazon S3 提供的完整性驗證。您可以使用 S3 做的是,您可以提供 Base64(MD5(FILE)) 以及 PUT 請求,然後在 S3 響應成功之前對其進行驗證。Eucalyptus 和 Cumulus 不支持這一點。對於 Eucalyptus,我們至少可以通過檢查響應文件中給出的 MD5 來解決這個問題(不是 S3 兼容的行為)。在 Cumulus 中,這是不可能的,因為它不響應任何東西(如 S3)。Cumulus 使情況變得更糟,因為它沒有在
HEAD
請求中給出 ETag。
最後,我不得不和 Eucalyptus Walrus 一起前進。儘管我最終發現了一些基本問題,但它們都有可能的解決方法。
感謝大家的寶貴意見!
Swift是 OpenStack 的對象儲存引擎,截至2011 年 2 月的 Bexar 版本,它聲稱是一個與 S3 兼容的實驗性中間件。由於 OpenStack 受到了廣泛關注(例如,Canonical 今年 10 月將 Ubuntu 轉移到 Eucalyptus 上),因此可能值得一看。