對象存儲使用場景
A. MinIO對象存儲介紹
MinIO是一款基於Apache License v2.0的開源對象存儲解決方案。以下是關於MinIO對象存儲的詳細介紹:
開發背景與語言:
- 創始人:由GlusterFS的創始人之一Anand Babu Periasamy推出。
- 開發語言:採用Golang語言開發。
客戶端支持:
- 多種編程語言:客戶端支持Java、Python、JavaScript和Golang等多種編程語言。
主要目標與適用場景:
- 私有雲對象存儲首選:Minio旨在成為私有雲對象存儲的首選方案。
- 非結構化數據存儲:適用於存儲大量非結構化數據,如圖片、視頻、文檔等。
- 文件大小范圍:支持的文件大小范圍從幾kb到5T不等。
元數據存儲與數據分布:
- 非獨立元數據存儲:Minio中的元數據存儲非獨立,與底層的本地文件系統緊密相連。
- Bucket與對象存儲:每個bucket對應文件系統中的一個目錄,對象則在bucket目錄下有子目錄存放數據和元數據。
- 數據冗餘與可靠性:通過Erasure Set確保數據的冗餘和可靠性。
性能與限制:
- 小文件處理性能較差:在處理大量小文件時,由於多次目錄和文件創建操作,性能可能較差。
- 數據讀寫模式:僅支持EC模式的數據讀寫,不支持副本或集群擴容。
- 集群規模確定:集群規模需要在部署時確定,缺乏靈活性。
- Federation模式:雖然可以通過Federation模式整體擴容整個集群,但不適用於單集群的擴展。
其他功能:
- Bucket和對象標簽:提供對bucket和對象的標簽支持。
- Minio gateway:可以對接其他存儲系統。
- 多租戶支持:支持多租戶環境。
- Bucket quota和replication:提供bucket的配額管理和復制功能。
- 存儲級別:支持兩種存儲級別。
- Disk Cache功能:支持Disk Cache以提高性能。
- Bucket通知:支持bucket通知以同步事件到外部系統。
適用場景:
- 大文件場景:Minio更適合大文件場景。
- 海量小文件應用:對於海量小文件應用,其性能和靈活性可能不是最佳選擇。
綜上所述,MinIO是一款功能強大的開源對象存儲解決方案,適用於存儲大量非結構化數據,但在處理大量小文件和集群擴容方面存在限制。
B. 騰訊雲-對象存儲服務(COS)的使用總結
騰訊雲對象存儲服務的使用總結:
一、前期准備 賬號注冊與登錄:用戶需首先注冊或登錄騰訊雲賬號,並關聯相關服務。
二、服務簡介 COS定義:COS是騰訊雲提供的海量文件存儲分布式服務,具有高擴展性、低成本、安全可靠等優點。 功能特性:支持通過控制台、API、SDK及工具上傳、下載和管理任意格式文件,並配備全國范圍的CDN/EdgeOne節點加速文件下載。
三、核心概念 存儲桶:存放對象的容器,可容納無數對象。 對象:COS的基本存儲單元,可理解為各種格式的數據。 地域:機房分布地區,數據存放在該區域的存儲桶中。 多AZ存儲架構:提供數據冗餘存儲,確保服務穩定性。 訪問域名:用於訪問存儲在桶中的對象。 存儲類型:包括標准存儲、低頻存儲、智能分層存儲等,適用於不同業務場景。
四、服務優點 節省資源:完全不佔用帶寬和存儲空間,降低自建服務成本。 網路加速:支持CDN/EdgeOne節點加速文件下載,提升訪問速度。 數據安全:提供防盜鏈、SSL加密傳輸等功能,確保數據安全。 高可用性與運維:具備高可用性,無需用戶承擔運維成本。 媒體處理:自動處理媒體後續任務,如轉碼、截圖等。 存儲桶掛載:支持將存儲桶掛載至本地雲主機,方便數據管理。
五、使用指南 訪問管理:通過臨時密鑰機制授權App訪問存儲資源,確保數據安全。 組件構成:包含用戶客戶端、用戶服務端、CAM許可權系統、COS對象存儲等。 密鑰管理:獲取永久密鑰並搭建臨時密鑰服務,確保數據安全傳輸。
六、JavaScript開發指南 引入庫與工具類:引入COS JavaScript SDK後,編寫工具類實現上傳圖片、視頻功能。 臨時密鑰管理:獲取臨時密鑰用於後續操作,直至失效後重新獲取。 上傳流程:身份證圖片上傳流程包括發起請求、檢查臨時密鑰、存取本地、上傳至COS、處理返回結果等步驟。 密鑰過期處理:針對臨時密鑰過期問題,採用循環獲取策略直至成功。