Vue.js 如何使用github s3同步操作将缓存控制设置为max age=0
每次合并到master时,我都会将vue应用程序上载到我的s3存储桶中。我的问题是缓存的失效不能完全工作。我的下一步是在每次推送时将元数据添加到对象Vue.js 如何使用github s3同步操作将缓存控制设置为max age=0,vue.js,amazon-s3,continuous-deployment,cache-control,github-actions,Vue.js,Amazon S3,Continuous Deployment,Cache Control,Github Actions,每次合并到master时,我都会将vue应用程序上载到我的s3存储桶中。我的问题是缓存的失效不能完全工作。我的下一步是在每次推送时将元数据添加到对象index.html。为此,我想问一下如何将其添加到github操作jakejarvis/s3同步操作() 或者我必须使用另一个github操作来实现这一点 目前我的工作流程如下所示: name: Build on: push: branches: [master] build: runs-on: ubuntu-lates
index.html
。为此,我想问一下如何将其添加到github操作jakejarvis/s3同步操作()
或者我必须使用另一个github操作来实现这一点
目前我的工作流程如下所示:
name: Build
on:
push:
branches: [master]
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Use Node.js 12.x
uses: actions/setup-node@v1
with:
node-version: '12.x'
- name: npm install
run: |
npm ci
- name: build
run: |
npm run build
- name: Deploy to S3
uses: jakejarvis/s3-sync-action@master
with:
args: --acl public-read --delete
env:
AWS_S3_BUCKET: ${{ secrets.AWS_STAGING_BUCKET_NAME }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_REGION: ${{ secrets.AWS_REGION }}
SOURCE_DIR: 'dist'
- name: Invalidate cloudfront
uses: muratiger/invalidate-cloudfront-and-wait-for-completion-action@master
env:
DISTRIBUTION_ID: ${{ secrets.AWS_STAGING_DISTRIBUTION_ID }}
PATHS: '/*'
AWS_REGION: ${{ secrets.AWS_REGION }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
我要寻找的结果是index.html
在每次部署后都有另一个元数据缓存控件:max age=0
。目前,我正在s3管理控制台中手动添加它,这对我来说不是一个好的解决方案。因为元数据在每次部署之后都会消失
我找到了关于如何使用aws cli的答案,但我不知道是否可以在我的操作中添加该选项
aws s3 cp s3://[mybucket]/index.html s3://[mybucket]/index.html --metadata-directive REPLACE \
--expires 2034-01-01T00:00:00Z --acl public-read --cache-control max-age=0,public
PS:我知道我需要在您的示例中编写测试:
with:
args: --acl public-read --delete
args
生效,因为它按原样传递给,其末尾有$*
:
sh -c "aws s3 sync ${SOURCE_DIR:-.} s3://${AWS_S3_BUCKET}/${DEST_DIR} \
--profile s3-sync-action \
--no-progress \
${ENDPOINT_APPEND} $*"
如果您还想设置--缓存控制最大年龄=0,public
,然后将其添加到args
:
with:
args: --acl public-read --delete --cache-control max-age=0,public
谢谢你的回复。如果在这种情况下理解正确,所有文件都将获得缓存控制max age=0
或?问题是,我只想让index.html
拥有那些元标记。是的,这将为所有文件设置它。我想您需要第二次调用才能对不同的文件使用单独的--缓存控制。谢谢您的帮助!那么,你是说我需要分叉操作并添加另一个脚本?