• FastDFS在.Net平台上的使用


    上一篇,了解了FastDFS是什么东东,一般稍微大一的网站都会做文件分离存储,FastDFS这轻型的分布式文件存储方式,非常有用。

    此图片截取博友(张占岭)的勿喷

    下面我们就了解一下,FastDFS在.net平台下如何实现上传和下载功能。

    咱用了WINFOM实现了一个简单的DEMO:

    左侧为tracker可以分配多个,换行显示

    右侧为storage列表,这里只做显示,可以不填

    1、点击“连接FASTDFS”按钮,系统将连接fastdfs服务器

     ConnectionManager.Initialize(trackerIPs);
     storageNode = FastDFSClient.GetStorageNode("group1");
    

    如果Fastdfs服务器配置正确,你会看到“连接成功”的字样。

    2、点击“选择文件并上传”按钮,文件将会把文件上传至fastdfs服务器

     OpenFileDialog openFileDialog = new OpenFileDialog();
                openFileDialog.Filter = "文本文件|*.*|png|*.png|JPG|*.jpg|JPEG|*.jpeg|所有文件|*.*";
                openFileDialog.RestoreDirectory = true;
                openFileDialog.FilterIndex = 1;
                if (openFileDialog.ShowDialog() == DialogResult.OK)
                {
                    string fName = openFileDialog.FileName;
                    byte[] content = null;
                    /*  FileInfo fileInfo = new FileInfo(filePath);
                      return fileInfo.Length;*/
                    FileStream streamUpload = new FileStream(fName, FileMode.Open);
                    using (BinaryReader reader = new BinaryReader(streamUpload))
                    {
                        content = reader.ReadBytes((int)streamUpload.Length);
                    }
                    textBox1.Text = fName;
                 
                    //主文件
                    string fileName = FastDFSClient.UploadFile(storageNode, content, "png");
                    var info = FastDFSClient.GetFileInfo(storageNode, fileName);
                    //从文件
                    var slaveFileName = FastDFSClient.UploadSlaveFile("group1", content, fileName, "_120x120", "png");
                    var slaveInfo = FastDFSClient.GetFileInfo(storageNode, slaveFileName);
                    listBox1.Items.Add(string.Format("主文件:http://{0}:8080/group1/{1}", trackerIPs[0].Address, fileName));
                    listBox1.Items.Add(string.Format("主文件大小:{0}KB,创建时间:{1}", info.FileSize, info.CreateTime));
                    listBox1.Items.Add(string.Format("从文件:http://{0}:8080/group1/{1}", trackerIPs[0].Address, slaveFileName));
                    listBox1.Items.Add(string.Format("从文件大小:{0}KB,创建时间:{1}", slaveInfo.FileSize, slaveInfo.CreateTime));
    
    
                }
    

    这时候你会在界面中看到你上传的文件返回的文件访问地址,你可以尝试在网页中打开,前提是上一篇的Nginx一定要配对。

    对于“主文件”和“从文件”的概念,通常是用在图片文件的存储上,例如缩略图,就可以从文件进行存储。这个意义不是很大了解一下就行。

    这个界面参考别的博友的,可惜他没有代码,我帮他补上,小酌一下勿喷,哈哈

    程序代码: http://pan.baidu.com/s/1kT4D1rx

  • 相关阅读:
    JS框架设计读书笔记之-选择器引擎02
    JS框架设计读书笔记之-选择器引擎01
    JS框架设计读书笔记之-小知识
    JS框架设计读书笔记之-函数
    JS框架设计读书笔记之-核心模块
    7.19 NOIP模拟6
    一 网络基础之网络协议篇
    Socket 网络编程
    Python 常用模块
    类的特殊成员
  • 原文地址:https://www.cnblogs.com/alvin_xp/p/4739719.html
Copyright © 2020-2023  润新知