获取错误:读取输入流时出错从远程复制文件

如何解决获取错误:读取输入流时出错从远程复制文件

我收到了这个奇怪的错误;调试了一段时间,我认为问题在于我正在从一个无意义的站点流式传输一个 Ghost 文件。

看看,这是错误信息:

错误:错误:WinSCP.SessionRemoteException:正在从远程复制文件 方失败。读取输入流时出错。在 WinSCP.Session.PutFile(Stream) 中的 WinSCP.OperationResultBase.Check() 流、字符串远程文件路径、传输选项选项)

我正在尝试从此站点获取最新文件:/origin/path/interfaces,复制该文件并将其粘贴到不同的服务器中,特别是在此位置:/destination/path/interfaces

似乎一切正常,我正在获取最新的文件,但我觉得有些奇怪:

它似乎是从这里读取文件:/origin/path/interfaces/TXTFILES202104101700.txt(在第一个会话中)但很奇怪,因为我无法通过指定名称来访问文件对于站点中的文件,我只能这样做:/origin/path/interfaces/

我猜这个错误是因为它试图将一个 Ghost 文件粘贴到新服务器中,它正在从这个位置“读取”“/origin/path/interfaces/TXTFILES202104101700.txt”。我无法在路由中指定文件,仅此:/origin/path/interfaces/


这是我的代码:

// Sessions options
SessionOptions SftpSource = new SessionOptions
{
    Protocol = Protocol.Sftp,HostName = xxxxxxxxxxxxx,xxxxxxxx = xxxxxxxxxxxxx,xxxxxxxx = xxxxxxxxxxxxx
};

SessionOptions SftpDestination = new SessionOptions
{
    Protocol = Protocol.Sftp,xxxxxxxx = xxxxxxxxxxxxx
};

using (Session sftpSessionServer1 = new Session())
using (Session SftpSessionServer2 = new Session())
{
    // Connecting to SFTP first server
    sftpSessionServer1.Open(SftpSource);

    // Get list of files in the SFTP directory
    string SftpRemoteDirectory = "/origin/path/interfaces";
    RemoteDirectoryInfo directoryInfo = sftpSessionServer1.ListDirectory(SftpRemoteDirectory);

    // Select the most recent file
    RemoteFileInfo ultimateFile =
        directoryInfo.Files
            .Where(file => !file.IsDirectory)
            .OrderByDescending(file => file.LastWriteTime)
            .First();

    // Connecting to SFTP second server
    SftpSessionServer2.Open(SftpDestination);

    string sSftpRemoteDirectory = "/destination/path/interfaces";
    string sftpRemotePath = RemotePath.Combine(sSftpRemoteDirectory,ultimateFile.Name);

    // Transfer from SFTP to SFTP
    using (Stream downloadStream = sftpSessionServer1.GetFile(ultimateFile.FullName))
    {
        SftpSessionServer2.PutFile(downloadStream,sftpRemotePath);
    }
}

来自两个会话的日志:

第一节:

< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall   1609790 Apr 10 22:56:27 2021 TXTFILES202104101700.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall       435 Feb 12 17:10:58 2021 TXTFILES202102121710.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall   3722440 Apr 12 10:48:20 2018 TXTFILES20180412.txt
< 2021-04-18 03:35:59.731 Script: -rw-r--r--   1 myuser  oinstall    890092 Dec 20 10:58:54 2018 TXTFILES20181220.txt
> 2021-04-18 03:36:04.032 Script: get  -nopermissions -preservetime -transfer="binary" -onlyfile -- "/origin/path/interfaces/TXTFILES202104101700.txt" "-"
. 2021-04-18 03:36:04.033 Listing file "/origin/path/interfaces/TXTFILES202104101700.txt".
> 2021-04-18 03:36:04.033 Type: SSH_FXP_LSTAT,Size: 68,Number: 1543
< 2021-04-18 03:36:04.049 Type: SSH_FXP_STATUS,Size: 24,Number: 1284
. 2021-04-18 03:36:04.049 Discarding reserved response
< 2021-04-18 03:36:04.059 Type: SSH_FXP_ATTRS,Size: 37,Number: 1543
. 2021-04-18 03:36:04.059 TXTFILES202104101700.txt;-;1609790;2021-04-11T01:56:27.000Z;3;"" [501];"" [503];rw-r--r--;0
. 2021-04-18 03:36:04.059 Copying 1 files/directories to local directory "" - total size: 1.609.790
. 2021-04-18 03:36:04.059   PrTime: Yes; PrRO: No; Rght: rw-r--r--; PrR: No (No); FnCs: N; RIC: 0100; Resume: S (102400); CalcS: No; Mask: *.*
. 2021-04-18 03:36:04.059   TM: B; ClAr: No; RemEOF: No; RemBOM: No; CPS: 0; NewerOnly: No; EncryptNewFiles: Yes; ExcludeHiddenFiles: No; ExcludeEmptyDirectories: No; InclM: ; ResumeL: 0
. 2021-04-18 03:36:04.059   AscM: *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; *.js; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml
. 2021-04-18 03:36:04.060 File: '/origin/path/interfaces/TXTFILES202104101700.txt' [2021-04-11T01:56:27.000Z] [1609790]
. 2021-04-18 03:36:04.060 Streaming "/origin/path/interfaces/TXTFILES202104101700.txt" to local machine started.
. 2021-04-18 03:36:04.060 Binary transfer mode selected.
. 2021-04-18 03:36:04.060 Opening remote file.
> 2021-04-18 03:36:04.060 Type: SSH_FXP_OPEN,Size: 76,Number: 1795
< 2021-04-18 03:36:04.073 Type: SSH_FXP_HANDLE,Size: 13,Number: 1795
> 2021-04-18 03:36:04.073 Type: SSH_FXP_FSTAT,Number: 2056
< 2021-04-18 03:36:04.085 Type: SSH_FXP_ATTRS,Number: 2056
> 2021-04-18 03:36:04.085 Type: SSH_FXP_READ,Size: 25,Number: 2309
< 2021-04-18 03:36:04.930 Status code: 1
. 2021-04-18 03:36:04.930 132 skipped SSH_FXP_WRITE,SSH_FXP_READ,SSH_FXP_DATA and SSH_FXP_STATUS packets.
> 2021-04-18 03:36:04.930 Type: SSH_FXP_CLOSE,Number: 23300
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS,Size: 28,Number: 15365
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS,Number: 15621
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS,Number: 15877
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS,Number: 16133
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS,Number: 16389
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 16645
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 16901
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 17157
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 17413
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 17669
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 17925
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 18181
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 18437
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 18693
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 18949
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 19205
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 19461
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 19717
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 19973
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 20229
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 20485
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 20741
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS,Number: 20997
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS,Number: 21253
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS,Number: 21509
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS,Number: 21765
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS,Number: 22021
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS,Number: 22277
< 2021-04-18 03:36:05.000 Type: SSH_FXP_STATUS,Number: 22533
< 2021-04-18 03:36:05.012 Type: SSH_FXP_STATUS,Number: 22789
< 2021-04-18 03:36:05.100 Type: SSH_FXP_STATUS,Number: 23045
. 2021-04-18 03:36:05.100 Transfer done: '/origin/path/interfaces/TXTFILES202104101700.txt' => '-' [1609790]
. 2021-04-18 03:36:05.101 Copying finished: Transferred: 1.609.790,Elapsed: 0:00:01,CPS: 1.684.869/s
> 2021-04-18 03:36:06.027 Script: exit
. 2021-04-18 03:36:06.028 Script: Exit code: 0
. 2021-04-18 03:36:06.028 Closing connection.
. 2021-04-18 03:36:06.028 Sending special code: 1
. 2021-04-18 03:36:06.040 Session sent command exit status 0
. 2021-04-18 03:36:06.040 Main session channel closed
. 2021-04-18 03:36:06.040 All channels closed

第二场:

"/origin/path/interfaces/TXTFILES202104101700.txt"
. 2021-04-18 03:36:04.244 Copying 1 files/directories to remote directory "/destination/path/interfaces/" - total size: 0
. 2021-04-18 03:36:04.244   PrTime: Yes; PrRO: No; Rght: rw-r--r--; PrR: No (No); FnCs: N; RIC: 0100; Resume: S (102400); CalcS: No; Mask: TXTFILES202104101700.txt
. 2021-04-18 03:36:04.244   TM: B; ClAr: No; RemEOF: No; RemBOM: No; CPS: 0; NewerOnly: No; EncryptNewFiles: Yes; ExcludeHiddenFiles: No; ExcludeEmptyDirectories: No; InclM: ; ResumeL: 0
. 2021-04-18 03:36:04.244   AscM: *.*html; *.htm; *.txt; *.php; *.php3; *.cgi; *.c; *.cpp; *.h; *.pas; *.bas; *.tex; *.pl; *.js; .htaccess; *.xtml; *.css; *.cfg; *.ini; *.sh; *.xml
. 2021-04-18 03:36:04.244 File: 'TXTFILES202104101700.txt' [n/a] [0]
. 2021-04-18 03:36:04.244 Streaming "TXTFILES202104101700.txt" to remote directory started.
. 2021-04-18 03:36:04.244 Binary transfer mode selected.
. 2021-04-18 03:36:04.244 Opening remote file.
> 2021-04-18 03:36:04.244 Type: SSH_FXP_OPEN,Size: 84,Number: 259
< 2021-04-18 03:36:04.301 Type: SSH_FXP_HANDLE,Number: 259
> 2021-04-18 03:36:04.321 Type: SSH_FXP_WRITE,Size: 32761,Number: 774
. 2021-04-18 03:36:05.446 53 skipped SSH_FXP_WRITE,SSH_FXP_DATA and SSH_FXP_STATUS packets.
> 2021-04-18 03:36:05.446 Type: SSH_FXP_CLOSE,Number: 7684
< 2021-04-18 03:36:05.457 Type: SSH_FXP_STATUS,Number: 7684
< 2021-04-18 03:36:05.457 Status code: 0
> 2021-04-18 03:36:05.457 Type: SSH_FXP_REMOVE,Number: 7949
< 2021-04-18 03:36:05.469 Type: SSH_FXP_STATUS,Number: 7949
< 2021-04-18 03:36:05.469 Status code: 0
* 2021-04-18 03:36:05.469 (ECommand) **Copying files from remote side failed**
* 2021-04-18 03:36:05.469 Failure reading network stream.
. 2021-04-18 03:36:05.470 Script: Failed
> 2021-04-18 03:36:05.924 Script: exit
. 2021-04-18 03:36:05.925 Increasing send buffer from 262144 to 524288
. 2021-04-18 03:36:05.925 Script: Exit code: 1
. 2021-04-18 03:36:05.925 Closing connection.
. 2021-04-18 03:36:05.925 Sending special code: 1
. 2021-04-18 03:36:05.937 Session sent command exit status 0
. 2021-04-18 03:36:05.937 Main session channel closed
. 2021-04-18 03:36:05.937 All channels closed

我该如何解决这个问题?我有点迷茫

解决方法

确实,code does not to work

在修复发布之前,如果文件不是太大,您可以通过将文件复制到内存缓冲区来临时解决它:

// Transfer from SFTP to SFTP
using (Stream downloadStream = sftpSessionServer1.GetFile(ultimateFile.FullName))
using (Stream memoryStream = new MemoryStream())
{
    downloadStream.CopyTo(memoryStream);
    memoryStream.Position = 0;
    SftpSessionServer2.PutFile(memoryStream,sftpRemotePath);
}

如果文件很大,您必须先将其下载到本地临时文件中,然后再上传。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res