背景
假设使用MongoDB的GridFS做分布式文件系统,同样的文件在文件系统中只存一份,那么在存入文件时就需要判断文件是否已经存在,在GridFS中每个文件都有唯一的md5哈希值,只需要用文件的md5值判断是否在GridFS中已经存在就可以了,所谓的秒传功能就是用的该原理。
技术栈
C#、VS2013、MongoDB、GridFS
实现
1 . 首先根据文件流得到md5值,代码如下:
| 代码如下 | 复制代码 |
|
//计算文件的MD5码 try return result; | |
2 . 根据md5值在GridFS中进行唯一性校验,方法如下:
| 代码如下 | 复制代码 |
| public string IsExist(string tag) { string id = ""; var files = _gridFs.Find(Query.EQ("md5", BsonValue.Create(tag))); if(files.Count() > 0) { id=files.FirstOrDefault().Id.ToString(); } return id; } | |
3 . GridFS操作类的完整代码参考
疯狂医院达什医生中文版(Crazy Hospital)
疯狂医院达什医生最新版是一款医院模拟经营类游戏,逼真的场景画
宝宝庄园官方版
宝宝庄园官方版是一款超级经典好玩的模拟经营类型的手游,这个游
桃源记官方正版
桃源记是一款休闲娱乐类的水墨手绘风格打造的模拟经营手游。玩家
长途巴士模拟器手机版
长途巴士模拟器汉化版是一款十分比真好玩的大巴车模拟驾驶运营类
房东模拟器最新版2024
房东模拟器中文版是一个超级有趣的模拟经营类型的手游,这个游戏