首页 > 解决方案 > 将文件直接从远程 url 传输到 S3 Bucket

问题描述

我正在使用提供许多 .gz 文件的服务,我想将它们传输到我的 S3 存储桶。客户端每天更新这些文件。我必须与他的服务器和我的 S3 存储桶保持同步。

它们为存储这些文件的所有端点提供了一个 API。

{
fileName: "xxxxx",
url: "https://domaine.com/file.gz"
}

这个想法是创建一个 Lambda(每天调用),负责将这些 .gz 文件直接从他的服务器传输到我的存储桶。

我不知道该怎么做。

你有关于这个用例的文章或文档吗?

标签: amazon-web-services

解决方案


最后,我所做的非常简单......我创建了一个 EC2 Ubuntu 实例,在该实例上我运行了一个我调整的 bash 脚本......这个脚本负责下载提要、解析 URL 并下载相应的文件到每个 URL。

wget -O feed.csv https://feed.com/datafeed/list/apikey/xxx
IFS=','
while read f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13; do
if [[ $f4 =~ "active" ]]; then
echo "remove quote from url..."
url="${f12%\"}"
url="${url#\"}"
echo "remove quote from id..."
name="${f5%\"}"
name="${name#\"}"
echo "download from url...${name}"
wget -O "${name}".csv.gz "${url}"
echo "upload to S3 from url...${name}"
aws s3 cp "${name}".csv.gz s3://mybucket/data/

fi
done < feed.csv

推荐阅读