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
- Cuenta de AWS (Crea si no tienes una)
- Conocimientos básicos de S3
- Conocimientos básicosde Python
- Python disponible en el sistema
Qué vamos a hacer
- Instalar Boto3
- Conocer los métodos necesarios.
- 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
Si no tienes pip y usas Ubuntu, ejecuta el siguiente comando para actualizar primero el repo local.
sudo apt update
Para instalar pip, utiliza el siguiente comando.
sudo apt install python-pip
Para comprobar la versión de Pip instalada, ejecuta el siguiente comando.
pip –versión
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
Para comprobar si Boto3 está instalado y su versión, ejecuta el siguiente comando
pip show 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 )
- ACL: La ACL enlatada que se aplicará al cubo.
- Cubo: El nombre del cubo a crear. Debe ser único a nivel global y no puede haber 2 cubos con el mismo nombre.
- 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. - ConcederControlCompleto: Permite al beneficiario los permisos de lectura, escritura, lectura ACP y escritura ACP sobre el cubo.
- ConcederLectura:Permite al beneficiario listar los objetos del cubo.
- ConcederLecturaACP: Permite al beneficiario leer la ACL del cubo.
- GrantWrite: Permite al beneficiario crear, sobrescribir y eliminar cualquier objeto del cubo.
- GrantWriteACP: Permite al beneficiario escribir la ACL del cubo correspondiente.
- 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'
)
- 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'
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)
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)
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
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
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.