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, --exclude
excluye 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 --exclude
opción coincide, lo ignorará. Si se cambió o desapareció de la fuente de datos.
Tu puedes hacer:
- Utilice --exclude en la primera y todas las sincronizaciones posteriores (esto mantiene el archivo fuera de s3 desde el principio)
- 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)
- Coloque --exclude y elimine manualmente el archivo de s3 (esto evitará que el archivo se vuelva a agregar a s3)
Referencia