我们在Angular 2中有一个静态网站构建,它在s3上托管。 该网站使用在AWS Gateway + Lambda Function中编写的API。
对于我们的前端部署,我们希望在Linux上使用EC2实例,我们在其中启动Shell
脚本,该脚本将处理我们的构建并从EC2上传到我们的S3。
#!/bin/bash
#pull from branch
git checkout --force "$1"
git pull
#build the app
ng build --production
cd dist
#uplaod to S3
$counter = find dist -type f | wc -l
#staging parameter
if ["$1" = "staging"]
then aws s3 cp dist s3://STAGINBUCKET --recursive
#[1]
#live parameter
if ["$1" = "live"]
then aws s3 cp dist s3://LIVEBUCKT --recursive
#[1]
#Errorhandler
else echo "parameter $1 error"
我们的问题是我们无法将整个文件夹上传到S3,因此我们需要一个for / while循环,它会将evry文件上传到我们的Bucket。
我尝试过:[1]for i in `seq 1 $counter`
do
#upload to file on position $i in folder dist
done
哪个不适合我。
如果有人知道在AWS中处理部署的更好方法,我将不胜感激。
感谢您提前帮助!
答案 0 :(得分:2)
当然,您可以复制整个目录。来自aws s3 sync help
:
NAME
sync -
DESCRIPTION
Syncs directories and S3 prefixes. Recursively copies new and updated
files from the source directory to the destination. Only creates fold-
ers in the destination if they contain one or more files.