Azure Function部署至Azure后上传文件到FTP返回530未登录错误问询
Azure Function部署后上传FTP服务器报错问题
我正在尝试通过Azure Function将文件上传至FTP服务器,程序会从Azure文件共享中读取目标文件再执行上传,逻辑较为简单。
byte[] fileContents; using (var memoryStream = new MemoryStream()) { await file.DownloadToStreamAsync(memoryStream); fileContents = memoryStream.ToArray(); } FtpWebRequest request = (FtpWebRequest)WebRequest.Create($"ftp://{ftpAddress}/{fileName}"); request.Method = WebRequestMethods.Ftp.UploadFile; request.Credentials = new NetworkCredential(ftpUser, ftpPassword); request.ContentLength = fileContents.Length; using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(fileContents, 0, fileContents.Length); } using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { log.LogInformation("HTTP triggered function executed successfully"); return new OkObjectResult($"File uploaded successfully on the FTP - response from the server: {response.StatusCode} - {response.StatusDescription}"); }
该程序在本地运行Azure Function时一切正常,但部署到Azure上运行时就会报错。
我已经尝试了多种方案,包括调整UsePassive参数等,但均未生效。我注意到密码中包含"@"符号,怀疑需要做转义处理但不清楚具体实现方式,恳请大家帮忙解答,谢谢。
@补充1
我更换为无特殊字符的纯文本密码测试,问题仍然存在...
@补充2
我改用FluentFTP连接同一FTP服务器,同样返回530错误,提示"login incorrect(登录失败)"。随后我更换了另一个FTP服务器测试,两种上传方式均能正常运行。请问可能是哪些登录相关的问题导致该报错?原FTP的账号密码包含中划线、下划线,是否会是诱因?
@已解决
我没有修改任何代码,仅更换了另一台FTP服务器测试,哪怕新服务器的账号密码也包含特殊字符,也能正常运行。感谢大家的帮助: )
内容的提问来源于stack exchange,提问作者MatDDev
相关产品推荐
相关产品推荐

