错误:没有这样的文件(sftp liximomo 扩展名)
Posted
技术标签:
【中文标题】错误:没有这样的文件(sftp liximomo 扩展名)【英文标题】:Error: No such file (sftp liximomo extension) 【发布时间】:2021-08-02 23:55:42 【问题描述】:当我使用 Visual Studio 代码的扩展名 liximomo/vscode-sftp
在服务器上上传文件时遇到此问题。
[error] Error: No such file
at SFTPStream._transform
at SFTPStream.Transform._read
at SFTPStream._read
我该如何解决这个问题?我尝试将文件上传到不同的服务器,所以我猜这不是服务器相关的问题,而是一个扩展。
【问题讨论】:
【参考方案1】:只需切换到第二个:
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:还有另一种解决方案,仅从扩展升级 ssh2
包。
你只需要转到扩展路径:
Windows:
C:\Users\your-user\.vscode\extensions\liximomo.sftp-1.12.9
当您在那里时,将package.json
文件中的ssh2
包的版本更改为^1.1.0
。最后,只需运行npm install
。
你应该重启 VSCode。
或者,您可以使用处于活动状态的存储库的分支来解决这些问题:https://github.com/Natizyskunk/vscode-sftp
【讨论】:
【参考方案3】:不是问题的答案,而是另一种(简单)方式的解决方案:
安装 Run On Save VSCode 扩展
按照思路编写一个 deploy.sh 脚本
rsync -avz -e 'ssh -i /home/user/.ssh/id_rsa' --exclude '.history' --exclude '.vscode' --exclude '.git' --exclude '.gitignore' --exclude 'deploy.sh' ./ user@domain.net:/home/user/public_html/
在 VSCode settings.json 中添加如下配置,在文件保存时触发 deploy.sh 脚本:
"emeraldwalk.runonsave":
"commands": [
"match": ".*",
"isAsync": false,
"cmd": "$workspaceFolder/deploy.sh"
,
]
【讨论】:
【参考方案4】:GitHub 上有一个更好的解决方案,适用于通过 SFTP 扩展上传和下载:
在
~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
中搜索options.emitClose = false;
在两个实例之后添加
options.autoDestroy = false;
。-mrjcgoodwin 评论了8 days ago
【讨论】:
此链接显示在哪里进行更改github.com/Natizyskunk/ssh2-streams/commit/… 微软是否对这个错误进行了微管理? @ryan.s 链接不起作用:(但无论如何谢谢.. 试过但没用。 macos big sur 11.4 liximomo.sftp-1.12.9 vscode 1.59.1(通用) 我很好奇,你是怎么得到这个解决方案的?我的意思是,您是如何调试问题的?我只是想知道你是否介意 美味哈克。帮我解决了,谢谢你的回答。【参考方案5】:这显然是新版本的 VS Code 中引入的全新问题。我有找到一个似乎运行良好的解决方案,方法是修改扩展代码中的一行。 这仅对 liximomo.sftp 扩展的 1.12.9 版本有效。
步骤如下:
-
关闭/退出 VS 代码。
找到以下文件:Mac OS X:
~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
Windows:C:\Users\account_name\.vscode\extensions\liximomo.sftp-1.12.9\node_modules\ssh2-streams\lib\sftp.js
制作文件的备份副本。
修改第388行,应为:if ( code === STATUS_CODE . OK )
改为:if (code === STATUS_CODE.OK || code === STATUS_CODE.NO_SUCH_FILE)
保存文件。
重新启动 VS 代码;通过从您的 sftp 服务器上传或下载进行测试。错误不应存在。
替代解决方案涉及降级您的 VS Code 版本。 这是不可取的,因为您没有获得最新的修复程序、安全补丁等。
请参阅以下有关此问题的链接:
https://github.com/liximomo/vscode-sftp/issues/266 https://github.com/liximomo/vscode-sftp/issues/569(重复) https://gitmemory.com/issue/liximomo/vscode-sftp/915/827578565(请注意,此站点的 SSL 证书无效)。如果你想降级你的 VS Code;使用此链接查找旧版本:
https://code.visualstudio.com/updates/v1_55
信用: 宝来自:https://blog.naver.com/PostView.nhn?blogId=pcgun70&logNo=222341271496 从他们的博客条目(由谷歌翻译成英文):
“起初,没有解决办法,但现在,12 小时后,圣 出现了一个,谁告诉我怎么解决。sftp找不到的文件 首先。有一个调用短语,VScode 升级和 调用错误。它出来了。其实我没有解决 问题。即使找不到文件,结果也与 成功过程被导出。这只是一个修改。它是 预计将来会发布修改版。”
【讨论】:
这暂时可行,但想知道为什么加载项发布时带有此错误...他们不应该进行测试或某种质量检查吗?这是一个很小的,但想象一下它会影响服务器上的上传和 F*** 事情!可怕的是它被 800k 开发人员使用。感谢您的快速修复! 实际上这个插件已经运行了好几个月了;最近对 VS Code 库的更改导致插件开始出现异常行为。唯一的问题是开发人员对插件的维护..我们还没有收到他的消息。所以社区已经介入并找到了解决方案。 这对我有用-> kubuntu linux,这不是我第一次必须对 vs 代码进行升级,但这次我可以解决它,谢谢 这对我没有帮助。 SFTP v1.12.9。 VSC 1.59.0 试过它对我有用。 macos big sur 11.4 liximomo.sftp-1.12.9 vscode 1.59.1(通用)以上是关于错误:没有这样的文件(sftp liximomo 扩展名)的主要内容,如果未能解决你的问题,请参考以下文章
java sftp 报错 Permission denied (没有权限;拒绝访问)
为啥winscp登不上去?显示错误 ‘收到太大的SFTP包 无法初始化SFTP协议。主机是SFTP服务器吗?’