我的任务是在 .net 程序中执行 SFTP。一切都很好,只是我们没有取回文件。在调试中,步骤中没有任何错误,但问题是没有文件返回。在手动 SCP 中,我们必须复制粘贴返回的文件,我们希望自动执行此操作。
应用程序配置
<appSettings>
<add key="HostName" value="marketing.sftp.myhub.com" />
<add key="UserName" value="marketing" />
<add key="Password" value="mypassword" />
<add key="SshHostKeyFingerprint" value="ssh-rsa 2047 za:5z:z6:77:36:d6:94:89:44:15:b0:ca:59:bf:d3:92" />
<add key="LocalPath" value="\\server-app01\cust\SC\AMAZON\WINSCP\TESTAMAZON" />
<!-- this is local folder path -->
<add key="RemotePath" value="/outgoing/orders/AMAZON/" />
<!-- this is remote system directory path -->
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
程序.cs
try
{
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
//Passing HostName , Password, & UserName here. port number
Protocol = Protocol.Sftp,
HostName = ConfigurationManager.AppSettings["HostName"].ToString(),
UserName = ConfigurationManager.AppSettings["UserName"].ToString(),
Password = ConfigurationManager.AppSettings["Password"].ToString(),
SshHostKeyFingerprint = ConfigurationManager.AppSettings["SshHostKeyFingerprint"].ToString()
};
string LocalPath = ConfigurationManager.AppSettings["LocalPath"].ToString();
string RemotePath = ConfigurationManager.AppSettings["RemotePath"].ToString();
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Upload files
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = session.PutFiles(LocalPath + "*", RemotePath, false, transferOptions);
// Throw on any error
transferResult.Check();