Amo*_* Wu 8 amazon-s3 amazon-web-services travis-ci
这是我的.travis.yml:
deploy:
provider: s3
access_key_id: $AWS_ACCESS_KEY
secret_access_key: $AWS_SECRET_KEY
bucket: domain.com
skip_cleanup: true
acl: public_read
region: ap-northeast-1
endpoint: domain.com.s3-website-ap-northeast-1.amazonaws.com
detect_encoding: true
on:
branch: master
Run Code Online (Sandbox Code Playgroud)
但它只是将文件上传到存储桶,而不是同步.如何同步或清除S3存储桶文件?
为了解决这个问题,我从 pip 安装了 AWS cli 并执行了部署前脚本。
这就是您在 .travis.yml 中需要的内容:
before_install:
- pip install --user awscli
- export PATH=$PATH:$HOME/.local/bin
before_deploy: bin/deploy.sh
Run Code Online (Sandbox Code Playgroud)
您还需要保护 .travis.yml 中的两个环境变量,该变量已由 aws-cli 准备就绪:
travis encrypt AWS_ACCESS_KEY_ID=YOUR_KEY_HERE --add
travis encrypt AWS_SECRET_ACCESS_KEY=YOUR_SECRET_HERE --add
Run Code Online (Sandbox Code Playgroud)
您的 bin/deploy.sh 应类似于以下内容
#!/bin/sh
echo "Clearing bucket: s3://your-bucket/path/inside/bucket/if/you/want"
aws s3 rm s3://your-bucket/path/inside/bucket/if/you/want --recursive --region eu-central-1
Run Code Online (Sandbox Code Playgroud)
并不是我们指定了区域,这对于 aws cli 来说似乎是强制性的。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
1574 次 |
| 最近记录: |