文件上传是我们日常中比较常见的问题,而且我们很多时候是要进行额外的处理的
比如缩略图,数据加工(数据分析类的应用),按照传统的模式(本地数据盘,或者一些已知开源工具)
是不能很好的支持变动处理的,对于此类情况,我们基于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