El control y la gestión de los datos puede ser una tarea agotadora. Estos comandos de AWS S3 le ayudarán a gestionar de forma rápida y eficaz sus buckets y datos de AWS S3.

AWSS3 es el servicio de almacenamiento de objetos proporcionado por AWS. Es el servicio de almacenamiento más utilizado de AWS que prácticamente puede albergar una cantidad infinita de datos. Es altamente disponible, duradero y fácil de integrar con varios otros servicios de AWS.

AWS S3 puede ser utilizado por personas con cualquier requisito como el almacenamiento de aplicaciones móviles/web, almacenamiento de big data, almacenamiento de datos de aprendizaje automático, alojamiento de sitios web estáticos, y muchos más.

Si ha estado utilizando S3 en su proyecto, sabrá que dada la enorme capacidad de almacenamiento, la gestión de cientos de buckets y terabytes de datos en estos buckets puede ser un trabajo exigente. Tenemos una lista de comandos de AWS S3 con ejemplos que puede utilizar para gestionar sus buckets y datos de AWS S3 de forma eficiente.

Configuración de la CLI de AWS

Una vez que haya descargado e instalado correctamente la CLI de AWS, deberá configurar las credenciales de AWS para poder acceder a su cuenta y servicios de AWS. Repasemos rápidamente cómo puede configurar la CLI de AWS.

El primer paso es crear un usuario con acceso programático a la Cuenta de AWS. Recuerde marcar esta casilla cuando cree un usuario para la CLI de AWS.

Dé los permisos y cree un usuario. En la pantalla final después de haber creado con éxito este usuario copie el ID de la clave de acceso y la clave de acceso secreta para este usuario. Utilizaremos estas credenciales para iniciar sesión a través de la CLI de AWS.

Ahora vaya a la terminal de su elección y ejecute el siguiente comando.

aws configure 

Introduzca el ID de la clave de acceso y la clave de acceso Secreta cuando se le solicite. Seleccione cualquier región de AWS de su elección y el formato de salida del comando. Personalmente prefiero utilizar el formato JSON. Esto no es gran cosa siempre se puede cambiar estos valores más tarde.

Ahora puede ejecutar cualquier comando CLI de AWS en la consola. Repasemos ahora los Comandos AWS S3.

cp

El comando cp simplemente copia los datos hacia y desde los buckets S3. Se puede utilizar para copiar archivos de local a S3, de S3 a local, y entre dos cubos S3. Hay muchos otros parámetros que puede suministrar con los comandos.

Por ejemplo, el parámetro -dryrun para probar el comando, el parámetro –storage-class para especificar la clase de almacenamiento de sus datos en S3, otros parámetros para establecer el cifrado, y mucho más. El comando cp le ofrece un control total sobre cómo configurar la seguridad de sus datos en S3.

Uso

aws s3 cp   [--options]

Ejemplos

Copiar datos de local a S3

aws s3 cp nombre_archivo.txt s3://nombre_archivo/nombre_archivo_2.txt

Copiar datos de S3 a local

aws s3 cp s3://nombre_bucket/nombre_archivo_2.txt nombre_archivo.txt

Copiar datos entre buckets S3

aws s3 cp s3://nombre_del_bucket/nombre_del_archivo.txt s3://nombre_del_bucket_2/nombre_del_archivo_2.txt

Copiar datos de local a S3 – IA

aws s3 cp nombre_archivo.txt s3://nombre_carpeta/nombre_archivo_2.txt --storage-class STANDARD_IA

Copiar todos los datos de una carpeta local a S3

aws s3 cp ./carpeta_local s3://nombre_del_cubo --recursive

ls

El comando l s se utiliza para listar los buckets o el contenido de los mismos. Por lo tanto, si simplemente desea ver información sobre sus buckets o los datos que contienen, puede utilizar el comando ls.

Uso

aws s3 ls NINGUNO o  [--options]

Ejemplos

Listar todos los buckets de la cuenta

aws s3 ls

Salida:
2022-02-02 18:20:14 NOMBRE_CUBO_1
2022-03-20 13:12:43 NOMBRE_CUBO_2
2022-03-29 10:52:33 CUBO_NOMBRE_3

Este comando lista todos los cubos de su cuenta con la fecha de creación del cubo.

Listar todos los objetos de nivel superior de un bucket

aws s3 ls CUBO_NOMBRE_1 o s3://CUBO_NOMBRE_1 

Salida:
                           PRE muestraPrefijo/
2021-12-09 12:23:20 8754 archivo_1.png
2021-12-09 12:23:21 1290 archivo_2.json
2021-12-09 12:23:21 3088 archivo_3.html

Este comando lista todos los objetos de nivel superior de un bucket S3. Observe aquí que los objetos con el prefijo samplePrefix/ no se muestran aquí, sólo los objetos de nivel superior.

Listar todos los objetos de un bucket

aws s3 ls CUBO_NOMBRE_1 o s3://CUBO_NOMBRE_1 --recursive

Salida:
2021-12-09 12:23:20 8754 archivo_1.png
2021-12-09 12:23:21 1290 archivo_2.json
2021-12-09 12:23:21 3088 archivo_3.html
2021-12-09 12:23:20 16328 ejemploPrefijo_archivo_1.txt
2021-12-09 12:23:20 29325 prefijo_de_muestra/subfijo_de_muestra/fichero_1.css

Este comando lista todos los objetos de un bucket S3. Observe aquí que también se muestran los objetos con el prefijo samplePrefix/ y todos los subprefijos.

mb

El comando mb se utiliza simplemente para crear nuevos buckets S3. Se trata de un comando bastante sencillo, pero para crear nuevos buckets, el nombre del nuevo bucket debe ser único en todos los buckets de S3.

Uso

aws s3 mb 

Ejemplo

Crear un nuevo cubo en una región específica

aws s3 mb myUniqueBucketName --region eu-west-1

mv

El comando mv simplemente mueve los datos hacia y desde los buckets S3. Al igual que el comando cp, el comando mv se utiliza para mover datos de local a S3, de S3 a local, o entre dos cubos S3.

La única diferencia entre el comando mv y el cp es que al utilizar el comando mv el archivo se elimina del origen. AWS mueve este archivo al destino. Hay muchas opciones que puede especificar con el comando.

Uso

aws s3 mv   [--options]

Ejemplos

Mover datos de local a S3

aws s3 mv nombre_archivo.txt s3://nombre_archivo/nombre_archivo_2.txt

Mover datos de S3 a local

aws s3 mv s3://nombre_de_bucket/nombre_de_archivo_2.txt nombre_de_archivo.txt

Mover datos entre buckets de S3

aws s3 mv s3://nombre_del_bucket/nombre_del_archivo.txt s3://nombre_del_bucket_2/nombre_del_archivo_2.txt

Mover datos de local a S3 – IA

aws s3 mv nombre_archivo.txt s3://nombre_decarpeta/nombre_archivo_2.txt --storage-class STANDARD_IA 

Mover todos los datos de un prefijo en S3 a una carpeta local.

aws s3 mv s3://nombre_del_cubo/algúnPrefijo ./carpeta_local --recursive

presign

El comando presign genera una URL prefirmada para una clave en el bucket de S3. Puede utilizar este comando para generar URL que puedan utilizar otras personas para acceder a un archivo de la clave especificada del bucket de S3.

Uso

aws s3 presign –expires-in

Ejemplo

Generar una URL prefirmada válida durante 1 hora para un objeto del bucket

aws s3 presign s3://nombre_del_cubo/refijo_de_muestra/nombre_del_archivo.png --expires-in 3600

Salida:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW/20220314/ap-south-1/s3/aws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

rb

El comando rb se utiliza simplemente para eliminar buckets de S3.

Uso

aws rb 

Ejemplo

Eliminar un cubo S3

aws s3 mb miNombreDeCubo
# Este comando falla si hay datos en este cubo.

Borrar un bucket S3 junto con los datos en el bucket S3.

aws s3 mb myBucketName --force

rm

El comando rm se utiliza simplemente para eliminar los objetos de los cubos S3.

Uso

aws s3 rm 

Ejemplos

Eliminar un archivo del bucket S3

aws s3 rm s3://nombre_del_balde/nombre_del_archivo/muestra_prefijo/nombre_del_archivo_2.txt

Eliminar todos los archivos con un prefijo específico en un bucket S3

aws s3 rm s3://nombre_del_bucket/prefijo_de_la_muestra --recursive

Eliminar todos los archivos de un bucket S3

aws s3 rm s3://nombre_del_bucket --recursive

sincronizar

El comando sync copia y actualiza archivos del origen al destino al igual que el comando cp. Es importante que entendamos la diferencia entre el comando cp y el sync. Cuando utiliza cp copia datos del origen al destino incluso si los datos ya existen en el destino.

Tampoco borrará archivos del destino si se han borrado del origen. Sin embargo, sync mira en el destino antes de copiar los datos y sólo copia los archivos nuevos y actualizados. El comando sync es similar a enviar y empujar cambios a una rama remota en git. El comando sync ofrece muchas opciones para personalizar el comando.

Uso

aws s3 sync   [--options]

Ejemplos

Sincronizar carpeta local a S3

aws s3 sync ./carpeta_local s3://nombre_carpeta

Sincronizar datos de S3 con una carpeta local

aws s3 sync s3://nombre_de_bucket ./carpeta_local

Sincronizar datos entre dos buckets S3

aws s3 sync s3://nombre_cubo s3://nombre_cubo_2

Mover datos entre dos buckets S3 excluyendo todos los archivos .txt

aws s3 sync s3://nombre_del_bucket s3://nombre_del_bucket_2 --exclude "*.txt

sitio web

Puede utilizar los buckets de S3 para alojar sitios web estáticos. El comando website se utiliza para configurar el alojamiento de sitios web estáticos en S3 para su bucket.

Usted especifica el índice y los archivos de error y el S3 le da una URL donde puede ver el archivo.

Uso

aws s3 website  [--options]

Ejemplo

Configure el alojamiento estático para un bucket S3 y especifique los archivos de índice y error

aws s3 website s3://nombre_del_cubo --index-documento index.html --error-documento error.html

Conclusión

Espero que lo anterior le dé una idea sobre algunos de los comandos de AWS S3 utilizados con frecuencia para administrar cubos.