Descargar carpetas desde un bucket de AWS S3: cp vs sync
Si eres un desarrollador que trabaja con AWS, es probable que hayas trabajado con Amazon S3, el servicio de almacenamiento de objetos en la nube. A menudo, es necesario descargar carpetas en S3 y guardarlas localmente. Dos comandos de AWS S3 que puedes usar para descargar carpetas en S3 son 'cp' y 'sync'. A continuación, se explicarán las diferencias entre estos dos comandos y cómo usarlos de manera efectiva.
¿Qué es cp?
El comando 'cp' significa "copy" o "copiar". Es útil para copiar archivos específicos desde y hacia los buckets de S3. Con el comando 'cp', también puede copiar carpetas enteras en S3, pero la sintaxis es un poco diferente.
Para copiar una carpeta en S3 hacia tu computadora local, usa la siguiente sintaxis:
aws s3 cp s3://nombre-bucket/ruta-de-carpeta-en-s3 carpeta-local --recursive
Es importante utilizar el flag "--recursive" para asegurarte de que se copien todos los archivos y subcarpetas dentro de la carpeta que deseas copiar.
Pros de utilizar cp:
- Realiza una copia exacta del archivo o carpeta especificada.
- Es útil para copiar archivos y carpetas específicos.
Contras de utilizar cp:
- No es efectivo para copiar grandes cantidades de archivos o carpetas.
- No puede detectar si un archivo o carpeta ha sido modificado desde la última copia.
¿Qué es sync?
El comando 'sync' está diseñado para sincronizar grandes cantidades de archivos y carpetas entre tu computadora y S3. En lugar de copiar una carpeta, 'sync' verifica la última fecha modificada de un archivo o carpeta y solo descarga lo que es diferente.
Para sincronizar una carpeta de S3 hacia tu computadora local, usa la siguiente sintaxis:
aws s3 sync s3://nombre-bucket/ruta-de-carpeta-en-s3 carpeta-local
El comando 'sync' descarga todos los archivos y subcarpetas de la carpeta indicada en S3 hacia la carpeta local en tu computadora.
Pros de utilizar sync:
- Es efectivo para sincronizar grandes cantidades de archivos y carpetas.
- Puede detectar si un archivo o carpeta ha sido modificado desde la última sincronización.
Contras de utilizar sync:
- Puede tardar más en completarse en comparación con el comando 'cp'.
- En algunos casos, puede descargar archivos que no se desean.
Ejemplos de Uso
Ejemplo de cp
Supongamos que deseas descargar la carpeta 'ejemplo' de S3 hacia tu computadora local dentro de la carpeta 'descargados'. Ejecuta el siguiente comando en tu terminal:
aws s3 cp s3://mi-bucket/ejemplo/ descargados/ejemplo/ --recursive
El comando 'cp' copia la carpeta 'ejemplo' desde S3 hacia la carpeta 'descargados' en tu computadora.
Ejemplo de sync
Supongamos que deseas sincronizar la carpeta 'datos' de S3 hacia tu carpeta local 'mis_datos'. Ejecuta el siguiente comando en tu terminal:
aws s3 sync s3://mi-bucket/datos/ mis_datos/
El comando 'sync' descarga la carpeta 'datos' desde S3 hacia la carpeta 'mis_datos' en tu computadora.
Conclusión
Ahora que conoces las diferencias entre los comandos 'cp' y 'sync', puedes elegir la mejor opción para tu situación. Si solo necesitas copiar algunos archivos y carpetas, utiliza 'cp'. Si necesitas sincronizar grandes cantidades de archivos y carpetas, 'sync' puede ser una mejor solución.
Preguntas Frecuentes
¿Cómo puedo verificar si se ha completado una descarga con éxito?
Puedes verificar la descarga con éxito al comparar el tamaño de los archivos descargados con el tamaño de los archivos originales en S3.
¿Qué sucede si un archivo en carpeta descargada ha sido modificado después de la descarga?
Depende del comando que utilizó para la descarga. Si utilizó el comando 'cp', no se detecta si el archivo ha sido modificado desde la última copia. Si utiliza el comando 'sync', solo se descarga lo que es diferente desde la última sincronización.
¿Cómo puedo descargar carpetas en S3 utilizando la consola de AWS?
En la consola de AWS, selecciona el bucket y la ruta de la carpeta que deseas descargar. Haz clic en la opción de "Descarga" y sigue las instrucciones.
Deja una respuesta