当前位置:   article > 正文

centos sftp客户端 c 源码_「dotnet」 封装一个同时支持密码/安全密钥认证的SFTP下载器...

开源sftp c语言 git

作者:justmine(分布式数据处理研习社)

出处:https://www.cnblogs.com/justmine

创作不易,欢迎转载,但必须在文章开头保留此段声明,否则保留追究法律责任的权利。

前言

最近在开发订单对账系统,先从各种支付平台获取订单销售数据,然后与公司商城订单数据进行对账兜底。总体上,各个支付平台提供数据的方式分为两类,一般以接口的方式提供实时数据,比如:webservice、NVP、restfull api,以文件服务的方式提供周期性数据,比如:SFTP。接口的方式比较简单,随便一个HTTP客户端库都能搞定,而SFTP文件下载服务就不一样了,至少需要满足三个条件,不然对接起来就相当麻烦。

  1. 支持密码认证
  2. 支持安全密钥认证
  3. 支持根据按文件命名策略检索文件,即支持正则检索文件

经过调研发现了一个非常好用,且文档全面的SFTP客户端库:

  1. GitHub
  2. 官方文档

这个库由componentpro出品,此公司还提供了其它的工具库,功能非常强大,如下:

16a9974b457f56aa7a139a2c8fa33a26.png

从上面可以看出,不仅提供FTP client/server、SFTP client/server的库,还提供了Mail、Excel、SAML、PDF的库,真的是太强大了,经过实验也发现它的SFTP封装的真的好用。

如何封装

作者已经使用SFTP Library封装并实现了以上三点需求,代码结构如下:

b62a54c27de5a3f85aaee47dba581251.png

这里就不赘述代码设计了,感兴趣请自行查看源码。

地址:https://github.com/justmine66/Samples/tree/master/SFTP/SFtpDownloader

如何使用

请先安装包:Install-Package SFTP.Downloader -Version 1.0.2,实际使用时,请使用最新版本。

1. 实现文件命名策略接口

public class FileNamingStrategy : IFileNamingStrategy{ public string GetFileRegexName() { return $"test.csv"; }}

2. 配置文件下载器

new ServiceCollection().AddSFtpServices(builder =>{ // 1. 注册命名服务,用于按需检索文件。 builder.AddNamingStrategy(); // 2. 认证方案(任选其一) // 2.1 密码 builder.UsePwdAuthTScheme("sftp-host
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/823838?site
推荐阅读
相关标签
  

闽ICP备14008679号