我得到这个奇怪的错误;已经调试了一段时间,我认为问题是我正在从一个无意义的网站流一个幽灵文件。
请看,这是错误消息:
错误:错误:WinSCP.SessionRemoteException:从远程端复制文件失败。读取WinSCP. Session. PutFile中的输入流. 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,
xxxxxxxx = xxxxxxxxxxxxx,
xxxxxxxx = xxxxxxxxxxxxx
};
SessionOptions SftpDestination = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = xxxxxxxxxxxxx,
xxxxxxxx = xxxxxxxxxxxxx,
xxxxxxxx = xxxxxxxxxxxxx,
xxxxxxxx = xxxxxxxxxxxxx,
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, Size: 13, Number: 2056
< 2021-04-18 03:36:04.085 Type: SSH_FXP_ATTRS, Size: 37, 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, Size: 13, 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, Size: 28, Number: 15621
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 15877
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 16133
< 2021-04-18 03:36:04.930 Type: SSH_FXP_STATUS, Size: 28, Number: 16389
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 16645
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 16901
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17157
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17413
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17669
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 17925
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18181
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18437
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18693
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 18949
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19205
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19461
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19717
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 19973
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20229
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20485
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20741
< 2021-04-18 03:36:04.931 Type: SSH_FXP_STATUS, Size: 28, Number: 20997
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21253
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21509
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 21765
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 22021
< 2021-04-18 03:36:04.932 Type: SSH_FXP_STATUS, Size: 28, Number: 22277
< 2021-04-18 03:36:05.000 Type: SSH_FXP_STATUS, Size: 28, Number: 22533
< 2021-04-18 03:36:05.012 Type: SSH_FXP_STATUS, Size: 28, Number: 22789
< 2021-04-18 03:36:05.100 Type: SSH_FXP_STATUS, Size: 28, 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, Size: 13, 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_READ, SSH_FXP_DATA and SSH_FXP_STATUS packets.
> 2021-04-18 03:36:05.446 Type: SSH_FXP_CLOSE, Size: 13, Number: 7684
< 2021-04-18 03:36:05.457 Type: SSH_FXP_STATUS, Size: 24, Number: 7684
< 2021-04-18 03:36:05.457 Status code: 0
> 2021-04-18 03:36:05.457 Type: SSH_FXP_REMOVE, Size: 68, Number: 7949
< 2021-04-18 03:36:05.469 Type: SSH_FXP_STATUS, Size: 24, 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
我该怎么解决呢?我有点迷路了。
1条答案
按热度按时间c2e8gylq1#
事实上,there was a bug that prevented the code from to working。
请升级到WinSCP的最新版本。
在发布修复程序之前,如果文件不是太大,您可以通过将文件复制到内存缓冲区来临时解决此问题:
如果文件很大,则必须先将其下载到本地临时文件,然后再上载。