根据我的项目要求,我想从本地FTP服务器&获取一些文件。将它们放入S3桶中。文件大小为1-2 GB。将文件放入FTP服务器文件夹后,我希望将该文件上传到S3存储桶。 请建议最简单的方法来实现这一目标?
注意 - 大多数文件将在一天内只放入FTP服务器一次,因此我不想连续扫描FTP服务器。一旦文件从FTP服务器上传到S3,我想终止在AWS中创建的任何资源(如EC2)。
答案 0 :(得分:1)
我认为您可以在FTP服务器上创建一个代理,该代理将使用AWS CLI每N秒/分钟/小时/等上传文件。这样您就可以避免对FTP服务器的外部访问。
另一种方法是拉取进程的Lambda函数,但就像你说FTP服务器不允许外部访问。
在本地和云基础之间创建VPN,创建Cloudwatch事件并通过Lambda执行提取过程。
sync
选项)。请看一下这个链接:https://aws.amazon.com/answers/networking/accessing-vpc-endpoints-from-remote-networks/ 使用Jenkins创建一个任务来执行将上传文件的过程。
您可以使用存储网关,访问其网站:https://aws.amazon.com/es/storagegateway/
答案 1 :(得分:1)
以下是我们如何解决它。
在S3存储桶上启用S3加速。这是非常需要的,因为你正在推送大文件。
如果您有权访问服务器,请安装aws cli并对该文件夹执行同步到s3存储桶。 AWS CLI将自动将您的文件夹同步到存储桶。这样,如果您更改任何现有文件,它将与S3存储桶保持同步。如果您可以访问服务器并且能够安装aws cli,这是理想且最简单的方法。
aws configure set default.s3.use_accelerate_endpoint true
如果要启用特定或默认配置文件,
{{1}}
如果您无法在前提中访问ftp服务器,则需要外部服务器来执行此过程。在这种情况下,您需要执行轮询或共享文件系统,在本地复制文件并将其移动到s3存储桶。这个过程会有很多失败点。
希望它有所帮助。