Error: No such file (sftp liximomo extension)
Error: No such file (sftp liximomo extension)
当我使用 visual studio 代码的扩展名 liximomo/vscode-sftp
在服务器上上传文件时遇到此问题。
[error] Error: No such file
at SFTPStream._transform
at SFTPStream.Transform._read
at SFTPStream._read
我该如何解决这个问题?我尝试将文件上传到不同的服务器,所以我想这不是服务器相关的问题,而是扩展问题。
这显然是新版本的 VS Code 中引入的全新问题。通过修改扩展代码中的一行,我 FOUND A SOLUTION 似乎运行良好。 这仅对 liximomo.sftp 扩展的 1.12.9 版有效。
步骤如下:
- 关闭/退出 VS Code。
- 找到以下文件:
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 版本。 这是不可取的,因为您没有获得最新的修复、安全补丁等。
请参阅以下关于此问题的 link:
- 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;使用此 link 查找旧版本:
https://code.visualstudio.com/updates/v1_55
信用:
宝来自:https://blog.naver.com/PostView.nhn?blogId=pcgun70&logNo=222341271496
来自他们的博客条目(由 Google 翻译成英文):
"At first, there was no solution, but Now, 12 hours later, the Holy
One appeared, who told me how to solve it.files that sftp cannot find
in the first place. There is a calling phrase, VScode is upgraded and
an error is called. It came out. Actually, I did not solve the
problem. Even if the file is not found, the same result as the
success process is exported. It is just a modification. It is
expected that a modified version will be released in the future."
GitHub 有一个更好的修复程序,适用于通过 SFTP 扩展上传和下载:
Do a search inside ~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
for options.emitClose = false;
Add options.autoDestroy = false;
after both instances.
- mrjcgoodwin commented 8 days ago
不是问题的答案,而是另一种(简单)方式的解决方案:
安装 运行 保存 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"
},
]
}
还有另一种解决方案,只从扩展中升级 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
直接切换到第二个:
当我使用 visual studio 代码的扩展名 liximomo/vscode-sftp
在服务器上上传文件时遇到此问题。
[error] Error: No such file
at SFTPStream._transform
at SFTPStream.Transform._read
at SFTPStream._read
我该如何解决这个问题?我尝试将文件上传到不同的服务器,所以我想这不是服务器相关的问题,而是扩展问题。
这显然是新版本的 VS Code 中引入的全新问题。通过修改扩展代码中的一行,我 FOUND A SOLUTION 似乎运行良好。 这仅对 liximomo.sftp 扩展的 1.12.9 版有效。
步骤如下:
- 关闭/退出 VS Code。
- 找到以下文件:
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 版本。 这是不可取的,因为您没有获得最新的修复、安全补丁等。
请参阅以下关于此问题的 link:
- 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;使用此 link 查找旧版本:
https://code.visualstudio.com/updates/v1_55
信用:
宝来自:https://blog.naver.com/PostView.nhn?blogId=pcgun70&logNo=222341271496
来自他们的博客条目(由 Google 翻译成英文):
"At first, there was no solution, but Now, 12 hours later, the Holy One appeared, who told me how to solve it.files that sftp cannot find in the first place. There is a calling phrase, VScode is upgraded and an error is called. It came out. Actually, I did not solve the problem. Even if the file is not found, the same result as the success process is exported. It is just a modification. It is expected that a modified version will be released in the future."
GitHub 有一个更好的修复程序,适用于通过 SFTP 扩展上传和下载:
Do a search inside
~/.vscode/extensions/liximomo.sftp-1.12.9/node_modules/ssh2-streams/lib/sftp.js
foroptions.emitClose = false;
Add
options.autoDestroy = false;
after both instances.- mrjcgoodwin commented 8 days ago
不是问题的答案,而是另一种(简单)方式的解决方案:
安装 运行 保存 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" }, ] }
还有另一种解决方案,只从扩展中升级 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
直接切换到第二个: