FastDFS client for .net
fastDfs Code: https://code.google.com/p/fastdfs/
FastDfs_Client_DotNet:https://code.google.com/p/fastdfs/downloads/detail?name=FastDFS_Client_Dotnet.rar
FastDfs示例代码
初始化
List<IPEndPoint> trackerIPs = new List<IPEndPoint>();
IPEndPoint endPoint = new IPEndPoint(IPAddress.Parse("192.168.0.123"),22122);
trackerIPs.Add(endPoint);
ConnectionManager.Initialize(trackerIPs);
StorageNode node = FastDFSClient.GetStorageNode("group1");
获取文件信息
FDFSFileInfo fileInfo = FastDFSClient.GetFileInfo(node, fileName);
Console.WriteLine(string.Format("FileName:{0}", fileName));
Console.WriteLine(string.Format("FileSize:{0}", fileInfo.FileSize));
Console.WriteLine(string.Format("CreateTime:{0}", fileInfo.CreateTime));
Console.WriteLine(string.Format("Crc32:{0}", fileInfo.Crc32));
上传文件
byte[] buffer = FastDFSClient.DownloadFile(node, fileName, 0L, 0L);
string localName = @"D:\a.ppt";
if (fileInfo.FileSize >= 1024)//如果文件大小大于1KB 分次写入
{
FileStream fs = new FileStream(localName, FileMode.OpenOrCreate, FileAccess.Write);
//string name_ = LocalName.Substring(LocalName.LastIndexOf("\\") + 1, LocalName.Length - LocalName.LastIndexOf("\\") - 1);
long offset = 0;
long len = 1024;
while (len > 0)
{
byte[] buffer = new byte[len];
buffer = FastDFSClient.DownloadFile(node, fileName, offset, len);
fs.Write(buffer, 0, int.Parse(len.ToString()));
fs.Flush();
// setrichtext(name_ + "已经下载:" + (offset / fileInfo.FileSize) + "%");
offset = offset + len;
len = (fileInfo.FileSize - offset) >= 1024 ? 1024 : (fileInfo.FileSize - offset);
}
fs.Close();
}
else//如果文件大小小小于1KB 直接写入文件
{
byte[] buffer = new byte[fileInfo.FileSize];
buffer = FastDFSClient.DownloadFile(node, fileName);
FileStream fs = new FileStream(localName, FileMode.OpenOrCreate, FileAccess.Write);
fs.Write(buffer, 0, buffer.Length);
fs.Flush();
fs.Close();
}
删除文件
FastDFSClient.RemoveFile("group1", fileName);
HTTP获取文件
1. Http流读取
string url = "http://aa.com/da/g5/M02/0D/16/rBEDik_nOJ0IAAAAAAA_cbJCY-UAACrRgMhVLEAAD-J352.jpg";
System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)System.Net.HttpWebRequest.Create(url);
System.Net.HttpWebResponse res = (System.Net.HttpWebResponse)req.GetResponse();
Image myImage = Image.FromStream(res.GetResponseStream());
myImage.Save("c:\\fast.jpg");//保存
>
WebClient直接下载
using (WebClient web = new WebClient())
{
web.DownloadFile("http://img13.360buyimg.com/da/g5/M02/0D/16/rBEDik_nOJ0IAAAAAAA_cbJCY-UAACrRgMhVLEAAD-J352.jpg", "C:\\abc.jpg");
web.DownloadFile("http://192.168.81.233/M00/00/00/wKhR6VADbNr5s7ODAAIOGO1_YmA574.jpg", "C:\\abc.jpg");
}
FastDFS client for .net的更多相关文章
- FastDFS.Client操作文件服务器
1.配置文件设置 <configSections> <section name="fastdfs" type="FastDFS.Client.Confi ...
- 实操:Could not autowire No beans of 'FastDFS Client' type found 的解决方法
前言: 今天接手了同事之前做的一个小项目,里面涉及到了 FastDFS 的使用.但是当我在本地运行项目的时候,却报了 Could not autowire No beans of 'FastDFS C ...
- 【架构设计】分布式文件系统 FastDFS的原理和安装使用
本文地址 分享提纲: 1.概述 2. 原理 3. 安装 4. 使用 5. 参考文档 1. 概述 1.1)[常见文件系统] Google了一下,流行的开源分布式文件系统有很多,介绍如下: -- mo ...
- FastDFS 安装及使用
FastDFS 安装及使用 2012-11-17 13:10:31| 分类: Linux|举报|字号 订阅 Google了一下,流行的开源分布式文件系统有很多,介绍如下: mogileF ...
- centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置
前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬 ...
- FastDFS+Nginx(单点部署)事例
FastDFS是由淘宝的余庆先生所开发,是一个轻量级.高性能的开源分布式文件系统,用纯C语言开发,包括文件存储.文件同步.文件访问(上传.下载).存取负载均衡.在线扩容.相同内容只存储一份等功能,适合 ...
- FastDFS搭建及java整合代码【转】
FastDFS软件介绍 1.什么是FastDFS FastDFS是用C语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高 ...
- FastDFS 上传文件
[root@GW1 client]# ./fdfs_test ../conf/client.conf upload /home/tmp/1009.png This is FastDFS client ...
- FastDFS常见命令
1: 启动FastDFS tracker: ./fdfs_trackered .../tracker.conf storage: ./fdfs_storaged .../storage.conf ...
随机推荐
- 183使用 MediaPlayer Framework 框架播放视频
效果如下: ViewController.h #import <UIKit/UIKit.h> #import <MediaPlayer/MediaPlayer.h> @inte ...
- windows下更改鼠标滚轮方向
本来鼠标滚轮的方向无所谓“正确”与否(win下和mac下方向相反),只要习惯即可.但从win下切换到mac后,本来是想把鼠标方向调成跟win下一致,结果这么一反转,连多指手势的“左右”都反了,苹果,算 ...
- Android学习笔记——保存文件(Saving Files)
本人邮箱:JohnTsai.Work@gmail.com,欢迎交流讨论. 欢迎转载,转载请注明网址:http://www.cnblogs.com/J ...
- JS组件系列——表格组件神器:bootstrap table 包含了js对象的定义和对象成员函数的定义
前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...
- 2 python大数据挖掘系列之淘宝商城数据预处理实战
preface 在上一章节我们聊了python大数据分析的基本模块,下面就说说2个项目吧,第一个是进行淘宝商品数据的挖掘,第二个是进行文本相似度匹配.好了,废话不多说,赶紧上车. 淘宝商品数据挖掘 数 ...
- RHEL5 yum更新源
1.检查yum是否安装 rpm -qa |grep yum 2.利用CentOS的yum更新源来实现RHEL5的YUM功能 vi /etc/yum.repos.d/CentOS-Base.repo [ ...
- VMWARE workstation 9 收缩虚拟硬盘
在9以前的版本中可以通过在客户机中vmtools收缩硬盘,而在9以后这个功能没有了.虚拟机中使用过的虚拟硬盘即使删除了所有数据,使用vmware workstation 9 的clean up dis ...
- Oracle之表空间基于时间点的恢复
记一次优化过程中:一次误操作,在不影响其他表空间的情况下:采用表空间基于时间点的恢复(TSPITR)方法恢复数据的过程. 1.TSPITR恢复原理 TSPITR目前最方便的方法是使用RMAN进行 ...
- SpringBoot(七)-- 启动加载数据
一.场景 实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求.为了解决这样的问题,spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunn ...
- Python生成器笔记
Python中三大器有迭代器,生成器,装饰器,本文主要讲述生成器.主要从生成器的概念,本质,以及yield关键字的使用执行过程. 本质:生成器是一类特殊的迭代器,使用了yield关键字的函数不再是函数 ...