文件服务器

概念

实现对文件增删改查,若是图片服务器需要考虑图片的压缩

文件服务器的好处

文件你存储在电脑里面也可以,存储在电脑里面给一个路径就可以了,为什么要用文件服务器;

  1. 对文件的操作有记录 比如增删改查,可以花式查询并对结果做操作,之前需要用比较复杂的正则才可以

    做到,比如按照日期查询,尤其是数量高到几万的时候,Window自带的文件管理存在不足;

    查询出一批数据到别的地方,或者对其进行不同比例的压缩,前端有需要的去选择图片;

  2. 可以利用索引,比如GridFS建立表的时候会自动对Filename和ID做索引;
  3. 对文件的操作有了一个可以分的比较详细的权限管控,可以任意的与别的权限系统管理
  4. 可以对文件进行拆分,比如我只让你看到一部分这种;

文件服务器的功能

文件的增加

  • 前缀地址+相对地址1+所添加文件的二进制所转化的Base64String --->添加成功 --->返回success+URL;

其中URL地址为后面一部分路径(非Ip和端口部分)存数据库;

  • 我这里是只存储在一个地址上面,不备份不容灾;
  • 文件命名规则 返回GUID还是别的
  • 文件存储路径 是一个表存储一个路径还是再仔细分
  • 后端还是否需要对文件后缀名做判断
  • 我这里必须对传递过来的文件大小做出判断,过大了不给存储;

文件的修改

文件的删除

文件的查询

图片的压缩

最好是前端压缩???

文件服务器

MongoDB

  • <16M

    当文档过小时,直接存储在文档对象中比较合适,

https://www.cnblogs.com/yilezhu/p/9315644.html

  • MongoDB>16M

MongoDB-GridFS

原理:驱动会在当前数据库创建2个集合,一个"fs.files" 和“fs.chunks” 集合

fs.files 记录文件名称,创建时间,文件类型等基本信息;

fs.chunks 分块存储了文件的二进制数据,分块的意思是指把文件分割成指定大小进行分割,然后存入多个文档中;

FastDSF

部署复杂,没有对.net core 做优化;

https://www.cnblogs.com/yilezhu/p/12797543.html

MinIO

分布式,性能最好

https://www.cnblogs.com/yilezhu/p/12830123.html

第三方平台存储

阿里云OSS或者七牛

前端框架

UpLoadFile

SixLabors

TODO 不会用

其它

TODO

注意事项

  • 图片尺寸最大值的限制,一个是网速,一个是存储空间,可以设置手机相机像素或者是再前端压缩后再上传

- 有分布式文件框架更好,没有也没有关系

原文地址:https://www.cnblogs.com/maanshancss/p/12937720.html