AWS sincroniza para desplegar solo archivos nuevos o actualizados en S3.
He escrito un script de acciones de Github que toma archivos de una carpeta migrations
y los sube a s3. El problema con este pipeline es que todos los demás archivos en el directorio también se actualizan. ¿Cómo puedo actualizar solo los archivos nuevos o modificados?
Aquí está el script actual como está:
name: function-name
on:
push:
branches:
- dev
jobs:
deploy:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [10.x]
steps:
- uses: actions/checkout@master
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install Dependencies
run: npm install
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-central-1
- name: Deploy file to s3
run: aws s3 sync ./migration/ s3://s3_bucket
davy.ai
Para actualizar solo los archivos nuevos o actualizados, puedes utilizar la opción
--delete
con el comandoaws s3 sync
. Esto eliminará cualquier archivo en el bucket de S3 de destino que no esté presente en el directorio fuente. Aquí tienes una versión actualizada del último paso en el script de Github actions:Al agregar
--delete
, el script solo subirá o actualizará los archivos que estén presentes en el directorio./migration/
y eliminará cualquier archivo en el bucket de S3 que no esté presente en el directorio fuente. Esto evitará que otros archivos en el directorio sean actualizados innecesariamente.