9 comandos de AWS S3 con ejemplos para administrar cubos y datos

El control y la gestión de datos pueden ser una tarea ardua. Estos comandos de AWS S3 lo ayudarán a administrar de manera rápida y eficiente sus depósitos y datos de AWS S3.

AWS S3 es el servicio de almacenamiento de objetos proporcionado por AWS. Es el servicio de almacenamiento más utilizado de AWS que puede almacenar virtualmente 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 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 usando S3 en su proyecto, sabrá que dada la gran cantidad de capacidad de almacenamiento, la administración de cientos de depósitos y terabytes de datos en estos depósitos puede ser un trabajo exigente. Tenemos una lista de comandos de AWS S3 con ejemplos que puede usar para administrar sus depósitos y datos de AWS S3 de manera eficiente.

Configuración de la CLI de AWS

Una vez que haya descargado e instalado correctamente la AWS CLI, debe configurar las credenciales de AWS para poder acceder a su cuenta y servicios de AWS. Veamos 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 AWS CLI.

Dar los permisos y crear un usuario. En la pantalla final, después de crear con éxito este usuario, copie el ID de la clave de acceso y la clave de acceso secreta para este usuario. Usaremos estas credenciales para iniciar sesión a través de la CLI de AWS.

Ahora ve a la terminal de tu elección y ejecuta 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 usar el formato JSON. Esto no es gran cosa, siempre puede cambiar estos valores más tarde.

Ahora puede ejecutar cualquier comando de la CLI de AWS en la consola. Pasemos ahora a través de los comandos de AWS S3.

c.p.

El comando cp simplemente copia los datos hacia y desde los depósitos S3. Se puede usar para copiar archivos de local a S3, de S3 a local y entre dos cubos de S3. Hay muchos otros parámetros que puede proporcionar 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 configurar el cifrado y mucho más. los comando cp le brinda control total sobre cómo configura la seguridad de sus datos en S3.

Uso

aws s3 cp <SOURCE> <DESTINATION> [--options]

Ejemplos

Copie datos de local a S3

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

Copie datos de S3 a local

aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

Copie datos entre depósitos S3

aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Copie datos de local a S3 – IA

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

Copie todos los datos de una carpeta local a S3

aws s3 cp ./local_folder s3://bucket_name --recursive

ls

los ls comando se utiliza para enumerar los cubos o el contenido de los cubos. Entonces, si simplemente desea ver información sobre sus cubos o los datos en estos cubos, puede usar el comando ls.

Uso:

aws s3 ls NONE or <BUCKET_NAME> [--options]

Ejemplos

Enumerar todos los cubos en la cuenta

aws s3 ls

Output:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

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

Enumerar todos los objetos de nivel superior en un cubo

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 

Output:
                           PRE samplePrefix/
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html

Este comando enumera todos los objetos de nivel superior en un depósito S3. Tenga en cuenta aquí que los objetos con el prefijo samplePrefix/ no se muestran aquí, solo los objetos de nivel superior.

Listar todos los objetos en un cubo

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 --recursive

Output:
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html
2021-12-09 12:23:20      16328 samplePrefix/file_1.txt
2021-12-09 12:23:20      29325 samplePrefix/sampleSubPrefix/file_1.css

Este comando enumera todos los objetos en un depósito S3. Tenga en cuenta aquí que también se muestran los objetos con el prefijo samplePrefix/ y todos los subprefijos.

megabyte

los comando mb simplemente se usa para crear nuevos depósitos S3. Este es un comando bastante simple, pero para crear nuevos depósitos, el nombre del nuevo depósito debe ser único en todos los depósitos de S3.

Uso

aws s3 mb <BUCKET_NAME>

Ejemplo

Crear un nuevo depósito en una región específica

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

m.v.

los comando mv simplemente mueve los datos hacia y desde los depósitos S3. Al igual que el comando cp, el comando mv se usa para mover datos de local a S3, S3 a local o entre dos depósitos de S3.

La única diferencia entre el comando mv y cp es que cuando se usa el comando mv, el archivo se elimina de la fuente. AWS mueve este archivo al destino. Hay muchas opciones que puede especificar con el comando.

Uso

aws s3 mv <SOURCE> <DESTINATION> [--options]

Ejemplos

Mover datos de local a S3

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

Mover datos de S3 a local

aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

Mover datos entre depósitos S3

aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

Mover datos de local a S3 – IA

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

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

aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

prefirmar

El comando presign genera una URL prefirmada para una clave en el depósito S3. Puede usar este comando para generar direcciones URL que otros pueden usar para acceder a un archivo en la clave de depósito de S3 especificada.

Uso

aws s3 presign –expires-in

Ejemplo

Genere una URL prefirmada que sea válida durante 1 hora para un objeto en el depósito.

aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Output:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

rb

El comando rb simplemente se usa para eliminar depósitos S3.

Uso

aws rb <BUCKET_NAME>

Ejemplo

Elimine un depósito de S3.

aws s3 mb myBucketName
# This command fails if there is any data in this bucket.

Elimine un depósito de S3 junto con los datos del depósito de S3.

aws s3 mb myBucketName --force

rm

El comando rm simplemente se usa para eliminar los objetos en los depósitos S3.

Uso

aws s3 rm <S3Uri_To_The_File>

Ejemplos

Elimine un archivo del depósito S3.

aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

Elimine todos los archivos con un prefijo específico en un depósito S3.

aws s3 rm s3://bucket_name/sample_prefix --recursive

Elimine todos los archivos en un depósito S3.

aws s3 rm s3://bucket_name --recursive

sincronizar

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

Tampoco eliminará los archivos del destino si se eliminan del origen. Sin embargo, la sincronización mira el destino antes de copiar sus datos y solo copia los archivos nuevos y actualizados. los comando de sincronización es similar a confirmar y enviar cambios a una rama remota en git. El comando de sincronización ofrece muchas opciones para personalizar el comando.

Uso

aws s3 sync <SOURCE> <DESTINATION> [--options]

Ejemplos

Sincronizar carpeta local con S3

aws s3 sync ./local_folder s3://bucket_name

Sincronizar datos S3 a una carpeta local

aws s3 sync s3://bucket_name ./local_folder

Sincronizar datos entre dos cubos S3

aws s3 sync s3://bucket_name s3://bucket_name_2

Mueva datos entre dos cubos S3 excluyendo todos los archivos .txt

aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt

sitio web

Puede usar depósitos S3 para alojar sitios web estáticos. El comando del sitio web se usa para configurar el alojamiento del sitio web estático de S3 para su depósito.

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

Uso

aws s3 website <S3_URI> [--options]

Ejemplo:

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

aws s3 website s3://bucket_name --index-document index.html --error-document error.html

Conclusión

Espero que lo anterior le dé una idea sobre algunos de los comandos de AWS S3 que se usan con frecuencia para administrar depósitos. Si está interesado en obtener más información, puede consultar los detalles de la certificación de AWS.