FTP服务文件上传失败,错误码553的排故过程

本文主要记录文件上传失败,错误码553的排故过程。

1 背景

树莓派通过FTP给嵌入式板卡传输文件,好几套设备,发现有的能传输成功,有的传输不成功。树莓派和嵌入式板卡都一样的,出现问题时感觉很懵。

2 逐项对比

2.1 自己写的树莓派里的代码,而嵌入式设备里的代码用了好久,所以主要怀疑自己树莓派上写的程序有问题,将有问题的树莓派的代码和正常的树莓派的代码对比,完全一样(毕竟自己写的嘛,哎)。

2.2 对比树莓派里文件夹路径及树莓派通过文件上传的嵌入式设备的路径及权限,完全一样,更加懵。

3 百度大法

3.1 使用搜索引擎搜索FTP 553错误的案例,确定了553是文件上传失败,服务器拒绝客户端的请求的错误码表示。原因呢,就很多了。有的说是文件名不合法,有的说是权限问题,有的说是路径不存在,根据别人的建议一个一个尝试,一个一个失败。

4 深度分析

恰好公司下班了,没人找我干扰我工作了,喝口水上了个厕所放松一下,回忆了下自己的排查过程。错误码显示是服务器拒绝了创建文件的请求,像名不对,没权限,没路径等自己检查过不是的,还有什么原因会使服务器不提供创建服务呢?这时想到一个可能是FTP服务器设置有问题,之前是否让嵌入式设备的负责同事改过服务不大记得了;还有一个可能是服务器分不出来空间了,为啥分不出来了呢?有可能里面程序用光了。使用Linux指令查询了下还剩多少空间,home下竟用掉了100%,根本就没空间了,如下图所示。

找到负责嵌入式设备下位机的同事,说是有个Log文件可以删掉,删除后再次尝试文件上传功能,该功能正常。

5 总结

排查问题需要静下心来,根据线索全局分析,虽难但解决问题后,有种豁然开朗的感觉,还是不错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity中进行FTP文件传输需要使用C#的FTP类库。以下是一个简单的示例,展示了如何在Unity中使用FTP传输文件: ```c# using System; using System.IO; using System.Net; using UnityEngine; public class FTPFileTransfer : MonoBehaviour { // FTP服务器的地址 public string ftpServer = "ftp://example.com"; // FTP服务器的用户名 public string userName = "username"; // FTP服务器的密码 public string password = "password"; // 本地文件路径 public string localFilePath = "path/to/local/file.txt"; // 远程文件路径(在FTP服务器上的路径) public string remoteFilePath = "path/to/remote/file.txt"; public void Start() { // 创建FTP请求对象 FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + "/" + remoteFilePath); request.Method = WebRequestMethods.Ftp.UploadFile; // 设置FTP登录凭据 request.Credentials = new NetworkCredential(userName, password); // 读取本地文件数据 byte[] fileData = File.ReadAllBytes(localFilePath); request.ContentLength = fileData.Length; try { // 将本地文件数据写入FTP请求流中 using (Stream requestStream = request.GetRequestStream()) { requestStream.Write(fileData, 0, fileData.Length); } // 发送FTP请求并获取响应 using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { Debug.Log("上传文件成功:" + response.StatusDescription); } } catch (Exception e) { Debug.LogError("上传文件失败:" + e.Message); } } } ``` 这个示例演示了如何通过FTP上传文件到指定的服务器。你可以根据自己的需求修改 `ftpServer`、`userName`、`password`、`localFilePath` 和 `remoteFilePath` 等变量的值。记得将示例中的 `path/to/local/file.txt` 替换为你本地文件的实际路径,将 `path/to/remote/file.txt` 替换为你希望在FTP服务器上保存文件的路径。 请注意,这个示例只展示了上传文件的过程,如果你需要下载文件或其他FTP操作,你需要使用不同的FTP请求方法。同样,你也可以在Unity中使用第三方FTP类库来简化FTP操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值