如何使用 IHttpClientFactory 将文件上传到 FTP 服务器

问题描述 投票:0回答:1

我有一个方法,我使用已弃用的

WebClient
类将文件上传到
FTP Server

public async Task<BaseResponse<Void>> Handle(FTPUploadRequest request, CancellationToken cancellationToken)
{
    using WebClient client = new()
    {
        Credentials = new NetworkCredential(configuration.FTP.User, configuration.FTP.Password.Decrypt())
    };

   static string BuildUri(FTPUploadRequest request, IOptionsSnapshot<Configuration> configuration) 
       => $"ftp://{configuration.FTP.Server}/{request.DirectoryPath}/{request.FileName}";

   client.UploadFile(
       BuildUri(request, configuration),
       WebRequestMethods.Ftp.UploadFile,
       request.FilePath + "/" + request.FileName);

   return await BaseResponse<Void>.Create(true);
}

WebClient
已过时,而不是
Unit-testable
。消息是:

SYSLIB0014 'WebClient.WebClient()' is obsolete: 'WebRequest, HttpWebRequest, ServicePoint, and WebClient are obsolete. Use HttpClient instead.'

所以我想注入

IHttpClientFactory
,这在过时的消息中也有说明。我可以轻松做到这一点,但是我应该如何上传文件呢?用
FTP Server
针对
multi-part-message
发帖?

我不知道,也无法在互联网上找到任何解决方案。

有什么想法吗?

c# asp.net-core .net-core dependency-injection
1个回答
0
投票

你不知道。

HTTP 和 FTP 是完全不同的协议。

您想使用 FTP 客户端。

© www.soinside.com 2019 - 2024. All rights reserved.