我们有外部客户每晚将 CSV 文件上传到他们的 SFTP 服务器。这些是小文件(每个只有几 MB)但数量很大。他们向我们提供 SFTP 用户凭据以下载这些文件。这些凭据存储在 SQL Server 数据库中。我要做的是每晚将这些文件从 SFTP 服务器复制到我组织的 AWS S3 存储桶中。
我正在考虑的一个解决方案是编写一个 C# 控制台应用程序,使用 SSH.net 从 SFTP 服务器读取这些文件并将其下载到我们的 EC2 服务器,然后将其上传到 S3 存储桶。然后有一个像 Quartz.net 或 Hangfire 这样的调度程序来每晚运行控制台应用程序作为一个循环任务。
此外,一旦文件上传到 S3 存储桶,它们需要每晚进一步处理,以将它们导入到我们在 SQL Server 后端运行的 ERP 系统中。
我不确定这是否是最佳解决方案,而且我受 .Net/C# 环境的限制。
完成这样的任务还有哪些其他可能的解决方案?
此外,我还提供了一种从 ERP 中按需触发此导入的方法。因此,用户可以按下其中一个屏幕上的按钮并将数据导入我们的 ERP(SFTP -> S3 -> SQL Server)。