El uso de aws cli sync incluye y excluye con la opción de eliminación

El uso de aws cli sync incluye y excluye con la opción de eliminación
aws s3 sync /WordProcessing/DOCUMENTS s3://mybigbucket --delete --include "*" --exclude ".DS_Store"

Si de alguna manera .DS_Store llegó a mybigbucket de AWS S3 (desde una copia de seguridad anterior), el uso del comando anterior no elimina los archivos .DS_Store del destino, incluso si hago lo siguiente manualmente:

rm /WordProcessing/DOCUMENTS/.DS_Store

en el servidor de archivos.

¿Me estoy perdiendo la lógica de cómo funciona la sincronización de AWS S3? Me parece que debería eliminar .DS_Store del destino en el depósito S3 si se eliminó del origen en el servidor de archivos.

Si quito --exclude y ejecuto el comando nuevamente, elimina .DS_Store del destino cuando se elimina del servidor de archivos. Eso no parece correcto.

¿Estoy adoptando el enfoque equivocado? Lo que quiero hacer es sincronizar todas las noches el servidor de archivos y que no transfiera al depósito S3 los miles de archivos .DS_Store.

Respuesta1

Parece que has cambiado tus parámetros después de la primera sincronización.

Cuando utiliza, --excludeexcluye todos los archivos u objetos del comando que coincidan con el patrón especificado. Si coincide, ignorará cualquier acción para ese patrón.

Si el archivo (.DS_Store) ya está ubicado en el depósito s3 y la --excludeopción coincide, lo ignorará. Si se cambió o desapareció de la fuente de datos.

Tu puedes hacer:

  1. Utilice --exclude en la primera y todas las sincronizaciones posteriores (esto mantiene el archivo fuera de s3 desde el principio)
  2. Primero elimine el archivo del host local, sincronícelo, luego coloque la exclusión (esto eliminará el archivo si está en s3 y luego evitará que se agregue)
  3. Coloque --exclude y elimine manualmente el archivo de s3 (esto evitará que el archivo se vuelva a agregar a s3)

Referencia

CLI de AWS - sincronización

información relacionada