簡體   English   中英

將 FTP 個文件 (csv) 自動化到 Amazon S3 存儲桶

[英]Automate FTP of files (csv) to Amazon S3 bucket

我想自動將數據上傳/攝取到 Amazon S3 存儲桶。 我不想為 FTP 到 S3 使用像 Filezilla 這樣的軟件。

這些文件將每天提供給 FTP 服務器。 我想每天從 FTP 服務器中挑選這些文件並存儲在 Amazon S3 中。 我可以設置 cron 作業或腳本以經濟高效的方式在 AWS 中運行嗎? 哪些 AWS 實例可以幫助我實現這一目標。

這些文件的大小約為 1GB。

Amazon S3 是一個 object 存儲服務。 它不能從外部位置“拉取”數據。

因此,您需要一個腳本或程序來:

  • 從 FTP 服務器獲取數據,以及
  • 將數據上傳到 Amazon S3

最好從 FTP 服務器本身運行這樣的腳本,這樣數據就可以發送到 S3,而不必先從 FTP 服務器下載。 如果這不可能,那么您可以在 Inte.net 上的任何計算機上運行該腳本,例如您自己的計算機或 Amazon EC2 實例。

上傳到 Amazon S3 的最簡單方法是使用AWS 命令行界面 (CLI) 它有一個aws s3 cp命令來復制文件,或者根據需要復制的內容,使用自動復制新文件或修改文件的aws s3 sync命令可能更容易。

該腳本可以通過計划觸發(Linux 上的 cron 或 Windows 上的計划任務)。

如果您使用的是 Amazon EC2 實例,則可以通過在不需要時關閉該實例來節省資金。 流程可能是:

  • 創建觸發 AWS Lambda function 的Amazon CloudWatch 事件規則
  • AWS Lambda function可以調用StartInstances()來啟動一個停止的 EC2 實例
  • Amazon EC2 實例可以使用將運行您的進程的啟動腳本(請參閱下面的詳細信息)
  • 在進程結束時,告訴操作系統關閉 ( sudo shutdown now -h )

這似乎有很多步驟,但 CloudWatch Event 和 Lambda function 配置起來很簡單。

要在每次 Linux 實例啟動時執行腳本,請將其放入: /var/lib/cloud/scripts/per-boot/

另請參閱: 完成任務時自動停止 EC2 實例 - DEV 社區

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM