我可以从 GCP 访问 SFTP 服务器,其中包含多个包含多个 .csv 文件的文件夹。每天都会有几次将新的 .csv 文件上传到服务器上的某些文件夹中。我已将在 GCP 计算引擎上保留的静态 IP 地址列入白名单,我可以使用该地址通过 SSH 访问 SFTP 服务器。
我想做的是安排一个每小时的工作来复制和同步 SFTP 服务器的文件夹内容以及具有相同文件夹结构的名为“sftp-data”的云存储桶的内容。
我的想法是使用 Cloud Scheduler 来安排作业,并使用我创建的 Compute Engine 实例和保留的静态 IP 地址来同步两个目录的文件内容,并且想知道这是否可以在 GCP 上实现。出于某种原因我是否需要使用云功能?希望收到一些关于如何自动化这项工作的更实用的指导。
提前非常感谢!
目前,Google Cloud Platform 没有专用产品可以使用 SFTP 将文件移入或移出 Google Cloud Storage 或 GCS。
您可以使用多种产品将对象从 SFTP 传输到 GCS。其中一个示例是 sftp-gcs,用 node.js 编写,并已在多个运行时中进行了测试,包括作为容器运行。但是,当前的实现仅支持单个目标存储桶。
另一个解决方案是使用SFTP Gateway将文件传输到Google Cloud Storage。然而,这是一项付费服务,但只需“每小时六美分”,再加上基础设施费用。它的功能之一是包括一个 Web 界面和 REST API,用于简单的用户管理、文件夹权限和实例管理,无论您是支持单个用户还是数千个用户。 另一个很棒的功能是自动执行文件传输过程,大大节省了团队的时间。
出于某种原因我需要使用云功能吗?
HTTPS无需涉及 Cloud Functions 或 Cloud Run,因为它们无法用于运行此无服务器解决方案,并且不支持除
之外的其他协议。 SFTP 使用 SSH 协议 承载 SFTP 子协议请求。 您还可以通过查看此
文档来安排计算引擎实例的启动或停止。这包括创建和部署函数以及设置作业来调用 pub/sub。 您还可以查看此文档
SFTP 访问 Google Cloud Storage