Ricerca nel sito web

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

  1. Account AWS (crealo se non ne hai uno)
  2. Comprensione di base di S3
  3. Comprensione di base di Python
  4. Python disponibile sul sistema

Cosa faremo

  1. Installa Boto3
  2. Conosci i metodi richiesti.
  3. 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
)

  1. ACL: l'ACL predefinito da applicare al bucket.
  2. Bucket: il nome del bucket da creare. Deve essere univoco a livello globale e non possono esserci 2 bucket con lo stesso nome.
  3. 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.
  4. GrantFullControl: consente al beneficiario le autorizzazioni di lettura, scrittura, lettura ACP e scrittura ACP nel bucket.
  5. GrantRead: consente al beneficiario di elencare gli oggetti nel bucket.
  6. GrantReadACP: consente al beneficiario di leggere l'ACL del bucket.
  7. GrantWrite: consente al beneficiario di creare, sovrascrivere ed eliminare qualsiasi oggetto nel bucket.
  8. GrantWriteACP: consente al beneficiario di scrivere l'ACL per il bucket applicabile.
  9. 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'
)

  1. 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.