cocosip / FastDFSCore

distributed file system fastdfs c# client
MIT License
37 stars 6 forks source link

GetFileInfo及RemoveFileAsync问题反馈 #15

Open yangbocheng opened 2 years ago

yangbocheng commented 2 years ago

1.GetFileInfo在文件已被删除的时候再调用 例如 var info = await client.GetFileInfo(storageNode, "M00/00/00/rBMAA2G1sFSAX5AUAAcRHSA5fjY114.PNG"); 在引用supersocket的情况下,会直接引起程序停止, 在引用dotnetty包的情况下回无限await卡住

2.RemoveFileAsync 需要提供一个传入storageNode的api 现在的api是ValueTask RemoveFileAsync(string groupName, string fileId, string clusterName = ""); 查看源码发现,会内部根据groupName去tracker获取storageNode,然后再调用delete操作 --然而,实际比如我用wsl2-docker集成fastdfs时,没有使用host模式,这就导致通过tracker获取的storageNode里面的ipaddress总是172.xx.xx.xx:23000 。 因此原始的api让我没有机会手动指定本地的storage:比如docker run -it xxx -p 23000:23000 -p 8888:8888 xx--时可以指定127.0.0.1:23000 。
不仅该api,还有AppendFileAsync 如能手动指定storageNode的方法更好

cocosip commented 2 years ago

问题2,不好去指定StorageNode。 从Tracker中获取StorageNode的时候,该列表是动态的,扩容,宕机等,都会造成该列表的变动。你这里遇到的问题是,FastDFS部署的时候遇到的内外网问题,尤其是在NAT网络环境下都会出现该问题。FastDFS官方在 6.X版本已经给出了双IP的解决方案。你可以查询下资料。

yangbocheng commented 2 years ago

问题2,不好去指定StorageNode。 从Tracker中获取StorageNode的时候,该列表是动态的,扩容,宕机等,都会造成该列表的变动。你这里遇到的问题是,FastDFS部署的时候遇到的内外网问题,尤其是在NAT网络环境下都会出现该问题。FastDFS官方在 6.X版本已经给出了双IP的解决方案。你可以查询下资料。

谢谢指导。