Minio 总结

【最佳答案】百科知识网:各种服务都有其专精的一面,幸好Amazon S3在云服务API层面上形成了某种事实上的标准,所以这点能够帮助我们将一些服务整合在一起 。实现效果上来看,最终达成了图片存储和提取缩放需求,对于一些项目也足够使用 。不过图片通过Thumbor处理总结1 各种服务都有其专精的一面,幸好Amazon S3在云服务API层面上形成了某种事实上的标准,所以这点能够帮助我们将一些服务整合在一起 。
实现效果上来看,最终达成了图片存储和提取缩放需求,对于一些项目也足够使用 。不过图片通过Thumbor处理后,其私有链接的属性也没了 。这在一些要求高的企业服务项目中也是蛮尴尬的 。
简单看了下Thumbor的源码,其图片输出是tornado实现的,相信有时间hack一下源码,实现私有链接也不会太困难的 。
Enjoy it!


Minio2 Minio Cloud Storage是一个分布式对象存储系统 。它是一个基于Go的开源项目,并且实现了Amazon S3的API 。也就是说Minio相当于一个开源的Amazon S3 。
使用docker安装可能是最省事的方式,两行命令即可安装下载并且运行起来 。注意,这种启动模式仅限于测试环境下,一旦命令终止,数据将会消失 。生产环境下的安装部署请参考文档 。
docker pull minio/miniodocker run -p 9000:9000 minio/minio server /export 启动之后,命令行中就会显示一堆系统信息 。
Endpoint:http://172.17.0.2:9000http://127.0.0.1:9000AccessKey: PT7TIDXEV7KH7S5R91JHSecretKey: 17hdYH0mF2Ljd3ahZ7JGyi5l/ZPjunLlldUMY/A0Region:us-east-1SQS ARNs: 之后就可以在浏览器中访问 http://127.0.0.1:9000 并且使用AccessKey和SecretKey登录 。
其核心功能很简单,创建bucket,上传文件 。其所有的文件链接都是含有过期时间的私有链接 。然后我们就可以使用其提供的SDK使用了,就是这么简单 。
minio专注于文件存储,并没有什么图片处理功能,但是我们可以使用thumbor这个服务来做图片处理 。
Thumbor AWS3 Thumbor处理图片很强大,但是只提供了很弱的图片存储功能 。其图片上传修改接口没有做验证,所以默认情况下没有开启 。但是Thumbor有一些社区支持,第三方开发者做了一些扩展 。其中Thumbor AWS 这个扩展可以把Thumbor后端跟Amazon S3整合起来 。在url上提交图片文件的key,Thumbor的后端会从Amazon S3中取出文件做处理 。而之前Minio兼容Amazon S3的Api 。所以意味着只需要做一点改动,就可以整合这两个服务 。最终就可以达成,利用Minio上传存储图片,利用Thumbor取出图片做处理 。
我们利用pip来安装这个扩展 。
pip install tc_aws 【Minio 总结】Thumbor AWS这个扩展利用Boto3连接Amazon S3的SDK,根据Boto3文档中的配置,我们需要创建 ~/.aws/credentials 这个文件,并且填写刚才Minio提供的AccessKey和SecretKey,授权这个服务访问Minio 。
[default]aws_access_key_id = YOUR_ACCESS_KEYaws_secret_access_key = YOUR_SECRET_KEY 之后在刚才利用thumbor_conf生成的thumbor.conf中修改一些配置 。
TC_AWS_REGION='us-east-1' #填写minio提供的RegionTC_AWS_ENDPOINT='http://127.0.0.1:9000' #将默认的Amazon S3地址换成minio运行地址LOADER = 'tc_aws.loaders.s3_loader' #将Thumbor的loader换成tc_aws.loaders.s3_loader 重新启动Thumbor,然后就可以在浏览器中通过Thumbor访问Minio中的图片了 。
比如,在Minio的docker这个bucket中上传了一张aaa.jpg,然后我们就可以通过 http://localhost:8888/unsafe/docker/aaa.jpg 这个地址访问到这张图片的原图 。当然,我们可以通过 http://localhost:8888/unsafe/300x200/docker/aaa.jpg 这种方式对这张图片进行300x200的缩放 。
这样我们就大功告成了 。
Thumbor4 Thumbor是一个非常强大的图片处理服务,可以实现图片裁剪、缩放、滤镜,甚至是人脸识别 。
它是一个基于Python的开源项目,在python环境下可以通过pip安装 。
pip install thumbor 然后使用下面命令即可运行 。
thumbor-config > ./thumbor.conf # 生成配置文件thumbor --port=8888 --conf=thumbor.conf 该服务运行在本地的8888端口,之后可以就可以直接通过url调用服务了 。
比如这张图片 https://www.baikezhishi.com/upload/article/20230117/ck13mm2l2kq.jpg
就可以使用 http://localhost:8888/unsafe/300x200/https://www.baikezhishi.com/upload/article/20230117/ck13mm2l2kq.jpg 这个url使其缩放到300x200大小 。