首页 > 编程语言 >asp.net core 通过SFTP下载文件

asp.net core 通过SFTP下载文件

时间:2024-07-04 11:10:54浏览次数:1  
标签:core asp return SFTP catch client var Message sftp

 引用第三方库:Ssh .Net

 

 try
 {
     using (var client = new SftpClient(ftpHost, ftpPort, ftpUsername, ftpPassword))
     {
         client.Connect();
         IEnumerable<ISftpFile> fileEnumerable = client.ListDirectory(remoteDirectory, null).Where(g => !g.IsDirectory & g.Name.Contains(dateStr));//获取到文件列表

         foreach (var file in fileEnumerable)
         {
             var filename = $"{localDirectory}/{file.Name}";//本地需要保存文件的绝对路径
             if (!File.Exists(filename))
             {
                 using (var localFile = File.OpenWrite(filename))
                     client.DownloadFile(file.FullName, localFile);
                 downloadFiles.Add(file.Name);
             }
         }                 
         client.Disconnect();
     }
 }
 catch (SocketException socketExc)
 {
     return new DownloadFileMessage
     {
         Code = DownloadFileCode.Faile,
         Message = "sftp地址连接超时(" + ftpHost + ")" + socketExc.Message
     };
 }
 catch (SshAuthenticationException authenExc)
 {
     return new DownloadFileMessage
     {
         Code = DownloadFileCode.Faile,
         Message = "sftp账号或密码错误(" + ftpUsername + "/" + ftpPassword + ")" + authenExc.Message
     };
 }

  

 

 

 

 try {
     using (var client = new SftpClient(ftpHost, ftpPort, ftpUsername, ftpPassword))
     {
         client.Connect();

         var byt = client.ReadAllBytes(remoteZipPath);  //remoteZipPath是ftp上的路径
         File.WriteAllBytes(localZipPath, byt);  //localZipPath是本地的绝对路径

         client.Disconnect();
     }
 }
 catch (SocketException socketExc) 
 {
     return "\"sftp地址连接超时(\" + ftpHost + \")\" + socketExc.Message";                    
 }
 catch (SshAuthenticationException authenExc)
 {
     return "sftp账号或密码错误(" + ftpUsername + "/" + ftpPassword + ")" + authenExc.Message;
 }
 catch (SftpPathNotFoundException pathNotFoundExc)
 {
     return "sftp没有找到对应的文件(" + remoteZipPath + ")" + pathNotFoundExc.Message;
 }

  

 

标签:core,asp,return,SFTP,catch,client,var,Message,sftp
From: https://www.cnblogs.com/fireicesion/p/18283198

相关文章

  • linux安装netcore nginx postgresql ssh
    sudosu1.安装软件$sudoaptinstall软件名2.卸载软件$sudoaptremove软件名3.更新可用软件包列表$sudoaptupdate4.更新已安装的包$sudoaptupgrade通常安装完ubuntu之后,可以先使用upgrade更新一下当前系统中可以升级的的软件包$sudoaptupdate$sudoap......
  • Acore_characters数据库全面解释
    acore_characters数据库目前有95个表,主要存储与用户账户有关的信息。account_data包含有关客户账户和设置的数据。accountId玩家账户ID。typeValueDescription0全局-账户配置缓存2全局-账户绑定缓存4全局-账户巨集缓存time最后修改的时间。data未......
  • Acore_auth数据库全面解释
    简单说吧,如果你不会源码修改编译,单单玩数据库和DBC就能做出很有特色的端。Azerothcore的数据库是Mysql,所以你得下载个SQL管理工具,大家比较常用的是NavicatSQL,我常用的是HeidiSQL(免费)。连接数据库的话,地址、用户名和密码请自行查找服务端内的worldserver.conf文件,示例:LoginDataba......
  • Acore-world数据库之各类loot-template表全面解释
    前言Acore-world数据库涉及到掉落(不含扒窃)的表一共有11个,分别是:序号表名说明1creature_loot_template生物掉落表,其entry值对应creature_template表的和lootid值2disenchant_loot_template附魔分解掉落表,其entry值对应item_template表的DisenchantID值3fish......
  • Linux下编译Azerothcore源码
    前言终于开始介绍Linux下如何编译AzerothCore源码了,本文编译和架设方法较为繁琐和细致,含Ubuntu、Debian和Docker(相较之前的Docker教程来说本文是手动版),且涉及到搭建注册网站和对外开放服务部分,故再次声明:本网站均为技术研究,若参考本网站教程搭建对外服务,我均不负任何责任!系统环......
  • Docker编译Azerothcore源码
    维基百科Docker是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。Docker允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟......
  • java使用sshd 实现sftp 自定义显示目录
       pom.xml<dependencies><dependency><groupId>cn.hutool</groupId><artifactId>hutool-core</artifactId><version>5.8.28</version></dependency>......
  • 编译安装Kubernetes 1.29 高可用集群(6)--Cilium网络组件和CoreDNS配置
    1.部署Cilium网络组件1.1在k8s-master节点上,下载安装helmwgethttps://mirrors.huaweicloud.com/helm/v3.15.2/helm-v3.15.2-linux-amd64.tar.gztar-zxvfhelm-v3.15.2-linux-amd64.tar.gzcplinux-amd64/helm/usr/bin/#helmversionversion.BuildInfo{Version:"v3.1......
  • ASP.NET Core Blazor 5:Blazor表单和数据
      本章将描述Blazor为处理HTML表单提供的特性,包括对数据验证的支持。1准备工作  继续使用上一章项目。  创建Blazor/Forms文件夹并添加一个名为EmptyLayout.razor的Razor组件。本章使用这个组件作为主要的布局。@inheritsLayoutComponentBase<divclass="......
  • Asp.Net Core -Authorizationz授权
    授权的内部实现参考动态授权参考 动态授权基于权限的授权1.定义权限-PermissionspublicclassPermissions{publicconststringAdmin="Admin";publicconststringUsers="Users";publicconststringUserCreate=Users+".Create";......