【发布时间】:2021-03-13 08:58:17
【问题描述】:
我有一个名为 getData.sh 的 shell 脚本,用于执行 cURL POST 命令。
$1
$2
date=$(date '+%Y-%m-%d')
if [[ -n $1 ]] && [[ -n $2 ]] ; then
curl -4 -X POST \
-H "Content-Type:application/json" \
-H "Authorization:Basic xxxxxxxxxxx" \
-H "X-Async:false" \
-d \
'{
"variables": {
"start_ts" : "2020-11-03 '"${1}"'",
"end_ts" : "2020-11-03 '"${2}"'",
"select_columns" : "*",
"where": "content is NOT NULL"
}
}
' \
'http://xxxx:8080/app/v1/app/sQuery' > $date-$1-$2.gz
else
exit 1
fi
当我运行这个..../getData.sh 13:00:00 14:00:00
这会输出如下文件:
2020-12-01-13:00:00-14:00:00.gz
现在我想将此文件上传到 S3。我可以运行这样的命令:
aws s3 cp /home/user/2020-12-01-13:00:00-14:00:00.gz s3://my-test-s3-bucket-2020-aws/
它有效,所以我想知道如何将它组合到一个脚本中,它会自动运行 aws s3 复制命令并将其复制到 S3。尝试了一些东西,但它在文件 cURL 完成之前执行,所以上传文件的一部分......
我尝试了以下方法,但它无法使用给定的文件名称上传它,因为它只是使用名称“-”上传它
curl xxx | aws s3 cp - s3://my-test-s3-bucket-2020-aws/
【问题讨论】: