0%

fastDfs Code: https://code.google.com/p/fastdfs/

FastDfs_Client_DotNet:https://code.google.com/p/fastdfs/downloads/detail?name=FastDFS_Client_Dotnet.rar

初始化

1
2
3
4
5
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");

获取文件信息

1
2
3
4
5
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));

上传文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
byte[] buffer = FastDFSClient.DownloadFile(node, fileName, 0L, 0L);
string localName = @"D:\a.ppt";
if (fileInfo.FileSize >= 1024)
{
FileStream fs = new FileStream(localName, FileMode.OpenOrCreate, FileAccess.Write);

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();

offset = offset + len;
len = (fileInfo.FileSize - offset) >= 1024 ? 1024 : (fileInfo.FileSize - offset);
}
fs.Close();

}
else
{
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();
}

删除文件

1
FastDFSClient.RemoveFile("group1", fileName);

HTTP获取文件
1. Http流读取

1
2
3
4
5
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直接下载

1
2
3
4
5
6

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");
}