从FTP服务器(本地)获取文件的最简单方法&投入S3桶

时间:2018-01-02 21:19:39

标签: amazon-web-services amazon-s3 ftp aws-lambda

根据我的项目要求,我想从本地FTP服务器&获取一些文件。将它们放入S3桶中。文件大小为1-2 GB。将文件放入FTP服务器文件夹后,我希望将该文件上传到S3存储桶。 请建议最简单的方法来实现这一目标?

注意 - 大多数文件将在一天内只放入FTP服务器一次,因此我不想连续扫描FTP服务器。一旦文件从FTP服务器上传到S3,我想终止在AWS中创建的任何资源(如EC2)。

2 个答案:

答案 0 :(得分:1)

这些是我的想法:

  • 我认为您可以在FTP服务器上创建一个代理,该代理将使用AWS CLI每N秒/分钟/小时/等上传文件。这样您就可以避免对FTP服务器的外部访问。

  • 另一种方法是拉取进程的Lambda函数,但就像你说FTP服务器不允许外部访问。

  • 在本地和云基础之间创建VPN,创建Cloudwatch事件并通过Lambda执行提取过程。

您可以在此配置超时: enter image description here

答案 1 :(得分:1)

以下是我们如何解决它。

在S3存储桶上启用S3加速。这是非常需要的,因为你正在推送大文件。

如果您有权访问服务器,请安装aws cli并对该文件夹执行同步到s3存储桶。 AWS CLI将自动将您的文件夹同步到存储桶。这样,如果您更改任何现有文件,它将与S3存储桶保持同步。如果您可以访问服务器并且能够安装aws cli,这是理想且最简单的方法。

https://docs.aws.amazon.com/AmazonS3/latest/dev/transfer-acceleration-examples.html#transfer-acceleration-examples-aws-cli

aws configure set default.s3.use_accelerate_endpoint true

如果要启用特定或默认配置文件,

{{1}}

如果您无法在前提中访问ftp服务器,则需要外部服务器来执行此过程。在这种情况下,您需要执行轮询或共享文件系统,在本地复制文件并将其移动到s3存储桶。这个过程会有很多失败点。

希望它有所帮助。