使用jcsh访问sftp...找不到需要需要下载的文件,但是文件在sftp上确实存在

opk5024 2018-04-09 11:44:29
RT!.
通过代码cd到需要下载的目录下,ls当前目录的文件结果只有两个,唯独少了我需要下载的那个文件。文件格式是csv
当我登录到sftp服务器上查看的时候,当前csv文件确实存在。

于此同时,换了其他的目录,发现其他目录的csv文件是可以下载的.但是返回这个目录。却始终无法找到。

我登录到当前服务器,看了一下这两个目录的csv所有者。都是root
于此同时权限内容都是一样的...

由于我在下载的过程中,我下载的用户,只有只读权限。所以无法更改当前目录下的内容。
请问在座的各位大神有没有遇到过类似的问题!。。。。。。。。。。。。。
...全文
589 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oO临时工Oo 2018-04-09
  • 打赏
  • 举报
回复
如果操作系统上文件是存在的,通过FTP客户端工具看文件也是存在的,说明代码中存在问题。
解决办法一是:查代码,多分析,例如换几个FTP试试。
解决办法二:分别通过工具正常查看FTP文件(可以是windows的ftp)、通过代码失败查看FTP文件,进行相同的操作,每个操作方式的同时用wireshark进行抓包分析,看两种方式中服务器返回的状态码有什么区别。




opk5024 2018-04-09
  • 打赏
  • 举报
回复
引用 2 楼 trocp 的回复:
如果通过操作系统的ls -al 都看不到文件,说明文件真的从操作系统上删除了, 可能是原因是sftp有缓存,重启sftp一下看通过sftp是否还能看到那个不存在的文件。 service sftpd restart 另外,可能通过抓包分析,ftp客户端在ls文件列表的时候,是否使用了缓存。
ls -al文件是存在的...因为我只拥有只读账户,所以没办法重启sftp... 于此同时,我通过linux shell sftp链接过去了...也是可以看到文件的! 唯独通过代码,就是拿不到文件
opk5024 2018-04-09
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
这个文件是否隐藏了等,用ls -a查看一下
刚刚使用ls -a看了一下,文件是存在的
oO临时工Oo 2018-04-09
  • 打赏
  • 举报
回复
如果通过操作系统的ls -al 都看不到文件,说明文件真的从操作系统上删除了, 可能是原因是sftp有缓存,重启sftp一下看通过sftp是否还能看到那个不存在的文件。 service sftpd restart 另外,可能通过抓包分析,ftp客户端在ls文件列表的时候,是否使用了缓存。
oyljerry 2018-04-09
  • 打赏
  • 举报
回复
这个文件是否隐藏了等,用ls -a查看一下

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧