Come creare un bucket S3 utilizzando Python Boto3 su AWS
In questo articolo impareremo a creare un bucket S3 utilizzando la libreria Python Boto3. Vedremo anche i passaggi per eliminare il bucket che abbiamo creato. Useremo i metodi \create_bucket\ e \delete_bucket\ rispettivamente per creare ed eliminare un bucket.
Prima di procedere presumo che tu abbia familiarità con il bucket S3, ma se non hai familiarità con il servizio bucket S3, fai clic qui per imparare a creare un bucket dalla console AWS.
Prerequisiti
- Account AWS (crealo se non ne hai uno)
- Comprensione di base di S3
- Comprensione di base di Python
- Python disponibile sul sistema
Cosa faremo
- Installa Boto3
- Conosci i metodi richiesti.
- Crea ed elimina un bucket S3.
Installa le dipendenze di Boto3
Python viene fornito di default in Ubuntu Server, quindi non è necessario installarlo.
Per controllare la versione di Python sul tuo sistema, usa il seguente comando.
which python
/usr/bin/python --version
O
python --versione
Se non hai pip e stai usando Ubuntu, esegui il seguente comando per aggiornare prima il repository locale.
sudo apt aggiornamento
Per installare pip, utilizzare il seguente comando.
sudo apt install python-pip
Per verificare la versione di Pip installata, eseguire il seguente comando.
pip --versione
Una volta che hai python e pip, puoi installare Boto3.
Installare Boto3 è molto semplice e diretto. Per installare Boto3 utilizzare il seguente comando.
pip install boto3
Per verificare se Boto3 è installato e la sua versione, eseguire il seguente comando.
pip mostra boto3
Conoscere i metodi richiesti
Per creare un bucket, utilizzeremo il metodo \create_bucket\. Di seguito la sintassi del metodo con tutti i parametri che può accettare. Non utilizzeremo tutti questi parametri per creare un bucket, ma puoi provarlo se lo desideri.
Sintassi della richiesta del metodo 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: l'ACL predefinito da applicare al bucket.
- Bucket: il nome del bucket da creare. Deve essere univoco a livello globale e non possono esserci 2 bucket con lo stesso nome.
- CreateBucketConfiguration: le informazioni di configurazione per il bucket.
LocationConstraint: specifica la regione in cui vuoi creare un bucket. La regione Stati Uniti orientali (Virginia settentrionale) (us-east-1) è la regione predefinita e i bucket vengono creati qui se la regione non è specificata. - GrantFullControl: consente al beneficiario le autorizzazioni di lettura, scrittura, lettura ACP e scrittura ACP nel bucket.
- GrantRead: consente al beneficiario di elencare gli oggetti nel bucket.
- GrantReadACP: consente al beneficiario di leggere l'ACL del bucket.
- GrantWrite: consente al beneficiario di creare, sovrascrivere ed eliminare qualsiasi oggetto nel bucket.
- GrantWriteACP: consente al beneficiario di scrivere l'ACL per il bucket applicabile.
- ObjectLockEnabledForBucket: specifica se vuoi abilitare S3 Object Lock per il nuovo bucket.
Di seguito è riportata la sintassi del metodo per eliminare il bucket che abbiamo creato.
Sintassi della richiesta del metodo delete_bucket
response = client.delete_bucket( Bucket='string' )
- Bucket: specifica il bucket da eliminare. Devi specificare qui il nome dei tuoi bucket S3 che desideri eliminare.
Crea ed elimina un bucket S3
Crea il file \config.properties\ che conterrà il tuo AWS User aws_access_key_id_value ,aws_secret_access_key_value e la regione. Aggiungi le tue chiavi in questo file.
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'
Ora, crea un file \create-s3-bucket.py\ e aggiungi il seguente codice. Questo codice leggerà i valori definiti nel passaggio precedente e creerà un bucket con il nome definito in questo file. Qui, creerò un bucket chiamato \rahul-boto3-test-delete\, cambialo con quello che desideri.
vim create-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 file \delete-s3-bucket.py\ che conterrà il codice per eliminare un bucket. Copia e incolla il seguente codice al suo interno.
vim delete-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)
Ora sei pronto per creare un secchio.
Per creare un bucket, esegui il file \create-s3-bucket.py\ utilizzando il seguente comando.
python create-s3-bucket.py
Se non hai più bisogno del bucket e desideri eliminarlo, esegui il file \delete-s3-bucket.py\ utilizzando il seguente comando.
python delete-s3-bucket.py
Conclusione
Abbiamo visto quanto sia facile creare un bucket S3 utilizzando la libreria Boto3 di Python e anche eliminarlo. Abbiamo creato un semplice bucket, puoi personalizzare il codice in base alle tue necessità e requisiti e creare un bucket utilizzando diversi parametri disponibili nel metodo create_bucket.