文件上傳是我們日常中比較常見的問題,而且我們很多時候是要進行額外的處理的
比如縮略圖,數據加工(數據分析類的應用),按照傳統的模式(本地數據盤,或者一些已知開源工具)
是不能很好的支持變動處理的,對於此類情況,我們基於s3 gateway 的webhook 能力,可以方便的實現
通知集成簡化系統處理的復雜度
參考設計
簡單說明
入口層包含一個強大的ingress 組件,進行系統流量分發,s3 gateway 代理我們不同的業務系統,面向nas的,本地磁盤的,或者
s3 的,這樣數據可以通過s3的標准接口實現webhook能力,我們的webhook 進行狀態存儲同時可以提供一個task 實現不同s3 數據的
處理(比如excel讀取,圖片縮略圖。。。),處理完成之后我們可以通過task 發送處理的數據以及結果到外部系統中
說明
以上是一個簡單的實踐,實際上基於minio s3 gateay 我們可以方便的改造我們的業務系統支持強大的s3能力,提供業務系統的靈活性
以及基於minio s3 gateway 實現數據的可觀測性(prometheus metrics。。。)
參考資料
https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/publish-events-to-webhook.html
https://docs.min.io/minio/baremetal/reference/minio-server/minio-gateway.html