还是图片/文件上传不和业务代码一起,单独做成图库,放在一个机器?
其中可能涉及一些问题
-
图片/文件存哪里?
- 如果以二进制存分布式数据库,二进制很太,平增负担
- 如果存进文件系统,那么ok,存在哪个机器上?
-
图片/文件从哪里读取?
求有经验的大牛分享下
统一存到对象存储里,aws s3或阿里 oss
图片和静态文件是推荐和代码分开存放的。 问题1: 存哪里 如果是想省事使用云存储服务 又拍云、七牛云、阿里云OSS都是做这个事的 价格挺便宜的,中小型公司适合这个。
如果你想自己试着搭建一下 可以试试 分布式文件系统(DFS) 开源的解决方案有Apache HDFS / FastDFS / Baidu BFS 后面两个有比较全的中文资料
问题2: 从哪里读取 如果是云存储服务,他们有专门的sdk读写方式和http读写接口 具体看服务商提供的文档 如果自建DFS系统,有专门的sdk,需要二次开发,具体做法自己找资料吧
问题3: 放在哪一个机器? 如果是云存储服务, 不需要你管呢 服务商提供给你的存储空间 如果自建DFS系统, 那就看你机器规模了 土豪一点就独立搞几台机器做个集群存储,穷一点就放在同一个机器上。 额外说一句: 如果机器有限到都被迫放到同一台机器上了,那么久不推荐自建dfs了,去买云存储服务吧。
如果你是基于docker部署,基于k8s管理docker容器,可以存放到nfs
非常感谢,很专业,受教了