自动从s3下载文件到本地

download file from s3 to local automatically

我正在创建粘合作业(Python shell) 以从 redshift 导出数据并将其存储在 S3 中。但是我如何 automate/trigger S3 中的文件下载到本地网络驱动器,以便第 3 方供应商将其提取。

不使用胶水,我可以创建一个在本地服务器上运行的 python 实用程序,以从 redshift 中提取数据作为文件并将其保存在本地网络驱动器中,但我想在云上实现这个框架以避免依赖本地服务器。

AWS cli sync 功能无用,因为供应商获取文件后,我不应该将其再次放入本地文件夹。

请给我推荐好的替代品。

如果界面团队可以使用 S3 API 或 CLI 从 S3 获取对象并放在 SFTP 服务器上,那么通过 IAM 用户或角色授予他们 S3 访问权限可能是最简单的解决方案。界面团队可以编写一个脚本,定期获取在指定日期后创建的 S3 对象列表,并将它们复制到 SFTP 服务器。

如果他们不能使用 S3 API 或 CLI,您可以使用签名 URL。您仍然需要将 S3 对象 URL 传达给界面团队。队列将是一个很好的解决方案。但是,如果他们可以使用 AWS SQS 客户端,我认为他们很可能只使用 S3 API 来查找新对象并检索它们。

我不清楚谁在控制 SFTP 服务器,是您的界面团队还是第 3 方供应商。如果您可以自己将文件推送到 SFTP 服务器,则可以创建一个运行 Lambda 函数的 S3 事件通知,以便在每次在 S3 存储桶中创建新对象时将对象复制到 SFTP 服务器。