Cómo crear un S3 Bucket usando Python Boto3 en AWS

En este artículo, aprenderemos a crear un cubo de S3 utilizando la biblioteca Boto3 de Python. También veremos los pasos para eliminar el cubo que hemos creado. Utilizaremos los métodos «create_bucket» y «delete_bucket» para crear y eliminar un bucket respectivamente.

Antes de continuar, asumo que estás familiarizado con los cubos S3, pero si no estás familiarizado con el servicio de cubos S3, haz clicaquí para aprender a crear un cubo desde la consola de AWS.

Requisitos previos

  1. Cuenta de AWS (Crea si no tienes una)
  2. Conocimientos básicos de S3
  3. Conocimientos básicosde Python
  4. Python disponible en el sistema

Qué vamos a hacer

  1. Instalar Boto3
  2. Conocer los métodos necesarios.
  3. Crear y eliminar un bucket S3.

Instalar las dependencias de Boto3

Python viene por defecto en Ubuntu Server, por lo que no necesitas instalarlo.

Para comprobar la versión de Python en tu sistema, utiliza el siguiente comando

que python
/usr/bin/python
–versión

O

python –versión

Comprueba la versión de Python

Si no tienes pip y usas Ubuntu, ejecuta el siguiente comando para actualizar primero el repo local.

sudo apt update

Actualizar paquetes

Para instalar pip, utiliza el siguiente comando.

sudo apt install python-pip

Instalar python pip

Para comprobar la versión de Pip instalada, ejecuta el siguiente comando.

pip –versión

Comprueba la versión de pip

Una vez que tengas python y pip, puedes instalar Boto3.

La instalación de Boto3 es muy sencilla y directa. Para instalar Boto3 utiliza el siguiente comando.

pip install boto3

Instalar boto3

Para comprobar si Boto3 está instalado y su versión, ejecuta el siguiente comando

pip show boto3

pip mostrar boto3

Conoce los métodos necesarios

Para crear un cubo, utilizaremos el método «create_bucket». Acontinuación se muestra la sintaxis del método con todos los parámetros que puede aceptar. No utilizaremos todos estos parámetros para crear un cubo, pero puedes probarlo si quieres.

Sintaxis de la solicitud del método create_bucket

response = client.create_bucket(
    ACL='private'|'public-read'|'public-read-write'|'authenticated-read',
    Bucket='string',
    CreateBucketConfiguration={
        'LocationConstraint': 'EU'|'eu-west-1'|'us-west-1'|'us-west-2'|'ap-south-1'|'ap-southeast-1'|'ap-southeast-2'|'ap-northeast-1'|'sa-east-1'|'cn-north-1'|'eu-central-1'
    },
    GrantFullControl='string',
    GrantRead='string',
    GrantReadACP='string',
    GrantWrite='string',
    GrantWriteACP='string',
    ObjectLockEnabledForBucket=True|False
)
  1. ACL: La ACL enlatada que se aplicará al cubo.
  2. Cubo: El nombre del cubo a crear. Debe ser único a nivel global y no puede haber 2 cubos con el mismo nombre.
  3. CreateBucketConfiguration: La información de configuración del cubo.
    LocationConstraint: Especifica la región donde quieres crear un cubo. La región Este de EEUU (N. Virginia) (us-east-1) es la región por defecto y los cubos se crean aquí si no se especifica la región.
  4. ConcederControlCompleto: Permite al beneficiario los permisos de lectura, escritura, lectura ACP y escritura ACP sobre el cubo.
  5. ConcederLectura:Permite al beneficiario listar los objetos del cubo.
  6. ConcederLecturaACP: Permite al beneficiario leer la ACL del cubo.
  7. GrantWrite: Permite al beneficiario crear, sobrescribir y eliminar cualquier objeto del cubo.
  8. GrantWriteACP: Permite al beneficiario escribir la ACL del cubo correspondiente.
  9. ObjectLockEnabledForBucket: Especifica si quieres que se habilite el bloqueo de objetos S3 para el nuevo cubo.

A continuación se muestra la sintaxis del método para eliminar el cubo que hemos creado.

Sintaxis del método delete_bucket

response = client.delete_bucket(
    Bucket='string'
)
  1. Bucket:Especifica el bucket que se va a eliminar. Debes especificar aquí el nombre de tu S3 Bucket que quieres eliminar.

Crear y eliminar un S3 Bucket

Crea elarchivo «config.properties» que contendrá tu AWS Useraws_access_key_id_value ,aws_secret_access_key_value y la región. Añade tus claves en este archivo.

config.properties

aws_access_key_id_value='ACCESS-KEY-OF-THE-AWS-ACCOUNT'
aws_secret_access_key_value='SECRETE-KEY-OF-THE-AWS-ACCOUNT'
region_name_value='eu-west-3'

Crear un cubo S3

Ahora, crea un archivo«create-s3-bucket.py» y añade el siguiente código en él. Este código leerá los valores definidos en el paso anterior y creará un cubo con el nombre que definas en este archivo. Aquí crearé un cubo llamado «rahul-boto3-test-delete», cámbialo por el que quieras.

vim crear-s3-bucket.py

import boto3

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()


getVarFromFile('config.properties')

client = boto3.client(
's3',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value
)

response = client.create_bucket(
    Bucket='rahul-boto3-test-delete',
    CreateBucketConfiguration={
        'LocationConstraint': 'eu-west-3',
    },
)

print (response)

Script en Python para crear un cubo S3

Crea un archivo«delete-s3-bucket.py» que contendrá el código para eliminar un cubo. Copia y pega el siguiente código en él.

vim eliminar-s3-bucket.py

def getVarFromFile(filename):
    import imp
    f = open(filename)
    global data
    data = imp.load_source('data', '', f)
    f.close()


getVarFromFile('config.properties')

client = boto3.client(
's3',
    aws_access_key_id=data.aws_access_key_id_value,
    aws_secret_access_key=data.aws_secret_access_key_value
)

response = client.delete_bucket(Bucket='rahul-boto3-test-delete')

print (response)

Script en Python para eliminar un cubo de S3

Ahora estás preparado para crear un cubo.

Para crear un cubo, ejecuta el archivo«create-s3-bucket.py«con el siguiente comando.

python crear-s3-bucket.py

Ejecuta el script de creación de cubos

Si ya no necesitas el cubo y quieres eliminarlo, ejecuta el archivo «delete-s3-bucket.py» utilizando el siguiente comando.

python borrar-s3-bucket.py

Ejecuta el script de eliminación de cubos

Conclusión

Hemos visto lo fácil que es crear un bucket de S3 utilizando la biblioteca Boto3 de Python y también eliminarlo. Hemos creado un cubo sencillo, puedes personalizar el código según tus necesidades y requerimientos y crear un cubo utilizando diferentes parámetros disponibles en el método create_bucket.

También te podría gustar...