如何通过github s3同步操作将缓存控制设置为max-age = 0

问题描述 投票:1回答:1

每次合并到master时,我都将一个vue应用程序上传到我的s3存储桶中。我的问题是缓存的失效不能完全起作用。我的下一步是在每次推送时将元数据添加到对象index.html。为此,我想问一下如何在github动作jakejarvis/s3-sync-actionhttps://github.com/marketplace/actions/s3-sync)中添加它?

或者我是否必须使用另一个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都有另一个元数据Cache-Control: 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:我知道我需要编写测试🙈

vue.js amazon-s3 continuous-deployment cache-control github-actions
1个回答
0
投票
with: args: --acl public-read --delete

[args生效,因为它按原样传递到了aws s3 invocation,后者的末尾是aws s3

$*

如果您还想设置sh -c "aws s3 sync ${SOURCE_DIR:-.} s3://${AWS_S3_BUCKET}/${DEST_DIR} \ --profile s3-sync-action \ --no-progress \ ${ENDPOINT_APPEND} $*" ,然后将其添加到--cache-control max-age=0,public

args
© www.soinside.com 2019 - 2024. All rights reserved.