FastDFS.Client操作文件服务器

时间:2021-10-27 08:29:19

1、配置文件设置

<configSections>
<section name="fastdfs" type="FastDFS.Client.Config.FastDfsConfigurationSectionHandler, FastDFS.Client" />
</configSections> <fastdfs>
<FastDfsConfig GroupName="group1">
<FastDfsServer IpAddress="192.168.88.103" Port="22122" />
</FastDfsConfig>
</fastdfs>

2、FastDFS.Client API调用

上传:

//文件保存到FastDFS服务器
var config = FastDfsManager.GetConfigSection();
ConnectionManager.InitializeForConfigSection(config);
StorageNode storageNode = FastDFSClient.GetStorageNode(config.GroupName); string filePath = FastDFSClient.UploadFile(storageNode, file.Data, file.Extension.Replace(".", ""));

下载:

private Task<byte[]> DownloadFileAsyn(string filePath)
{
return Task.Run(() =>
{
List<byte> content = new List<byte>();
var config = FastDfsManager.GetConfigSection();
ConnectionManager.InitializeForConfigSection(config);
StorageNode storageNode = FastDFSClient.GetStorageNode(config.GroupName);
FDFSFileInfo fileInfo = FastDFSClient.GetFileInfo(storageNode, filePath);
if (fileInfo.FileSize >= ) //文件内容大于1024字节时,需要分批下载
{
long offset = , len = ;
while (len > )
{
byte[] buffer = FastDFSClient.DownloadFile(storageNode, filePath, offset, len);
content.AddRange(buffer);
offset += len;
len = Math.Min(fileInfo.FileSize - offset, );
}
}
else
{
content.AddRange(FastDFSClient.DownloadFile(storageNode, filePath));
} return content.ToArray();
});
}

删除:

         // 从FastDFS服务器删除
var config = FastDfsManager.GetConfigSection();
ConnectionManager.InitializeForConfigSection(config);
FastDFSClient.RemoveFile(config.GroupName, path);