错误:没有这样的文件(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.jsWindows: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服务器吗?’

ssh2-sftp-client get()请求提供“拒绝权限-错误”

php使用sftp上传文件

ssh2_scp_send 文件没有被复制,没有错误

ubuntu 安装sftp