Wie man einen S3 Bucket mit Python Boto3 auf AWS erstellt
In diesem Artikel lernen wir, wie wir mit der Python-Bibliothek Boto3 einen S3-Bucket erstellen. Wir werden auch sehen, wie wir den erstellten Bucket löschen. Wir werden die Methoden „create_bucket“ und „delete_bucket“ verwenden, um einen Bucket zu erstellen bzw. zu löschen.
Bevor wir fortfahren, gehe ich davon aus, dass du mit dem S3-Bucket vertraut bist. Wenn du jedoch nicht mit dem S3-Bucket-Service vertraut bist, klicke hier, um zu lernen, wie du einen Bucket über die AWS-Konsole erstellst.
Vorraussetzungen
- AWS-Konto (Erstelle wenn du noch keines hast)
- Grundlegendes Verständnis von S3
- GrundlegendesVerständnis von Python
- Python auf dem System verfügbar
Was wir tun werden
- Boto3 installieren
- Die erforderlichen Methoden kennen.
- Einen S3-Bucket erstellen und löschen.
Installiere die Boto3-Abhängigkeiten
Python ist standardmäßig in Ubuntu Server enthalten, du brauchst es also nicht zu installieren.
Um die Python-Version auf deinem System zu überprüfen, verwende den folgenden Befehl.
welches python
/usr/bin/python –version
ODER
python –version
Wenn du pip nicht hast und Ubuntu verwendest, führe den folgenden Befehl aus, um zunächst das lokale Repo zu aktualisieren.
sudo apt update
Um pip zu installieren, verwende den folgenden Befehl.
sudo apt install python-pip
Um die installierte Version von Pip zu überprüfen, führe den folgenden Befehl aus.
pip –version
Sobald du python und pip installiert hast, kannst du Boto3 installieren.
Die Installation von Boto3 ist sehr einfach und unkompliziert. Um Boto3 zu installieren, verwende den folgenden Befehl.
pip install boto3
Um zu überprüfen, ob Boto3 installiert ist und welche Version es hat, führst du den folgenden Befehl aus.
pip show boto3
Kenne die benötigten Methoden
Um einen Bucket zu erstellen, verwenden wir die Methode „create_bucket“.Im Folgenden findest du die Syntax der Methode mit allen Parametern, die sie annehmen kann. Wir werden nicht alle diese Parameter verwenden, um einen Bucket zu erstellen, aber du kannst es ausprobieren, wenn du möchtest.
Anfrage-Syntax der Methode 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:Die Canned ACL, die auf den Bucket angewendet werden soll.
- Bucket: Der Name des zu erstellenden Buckets. Dieser muss global eindeutig sein und es dürfen keine 2 Buckets den gleichen Namen haben.
- CreateBucketConfiguration:Die Konfigurationsinformationen für den Bucket.
LocationConstraint:Gibt die Region an, in der du einen Bucket erstellen möchtest. Die Region US East (N. Virginia) (us-east-1) ist die Standardregion und Buckets werden hier erstellt, wenn die Region nicht angegeben wird. - GrantFullControl:Erlaubt dem Empfänger Lese-, Schreib-, Lese-ACP- und Schreib-ACP-Berechtigungen für den Bucket.
- GrantRead:Erlaubt es dem Berechtigten, die Objekte im Bucket aufzulisten.
- GrantReadACP: Erlaubt es dem Berechtigten, die Bucket-ACL zu lesen.
- GrantWrite: Erlaubt es dem Berechtigten, jedes Objekt im Bucket zu erstellen, zu überschreiben und zu löschen.
- GrantWriteACP: Erlaubt es dem Berechtigten, die ACL für den betreffenden Bucket zu schreiben.
- ObjectLockEnabledForBucket: Gibt an, ob der S3 Object Lock für den neuen Bucket aktiviert werden soll.
Nachfolgend die Syntax der Methode zum Löschen des Buckets, den wir erstellt haben.
Anfrage-Syntax der delete_bucket Methode
response = client.delete_bucket(
Bucket='string'
)
- Bucket:Gibt den Bucket an, der gelöscht werden soll. Du musst hier den Namen deines S3-Buckets angeben, den du löschen möchtest.
Erstellen und Löschen eines S3-Buckets
Erstelle dieDatei „config.properties“, die deinen AWS Useraws_access_key_id_value, aws_secret_access_key_value und regionenthält. Füge deine Schlüssel in diese Datei ein.
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'
Erstelle nun eine Datei“create-s3-bucket.py“ und füge den folgenden Code hinzu. Dieser Code liest die im vorherigen Schritt definierten Werte und erstellt einen Bucket mit dem Namen, den du in dieser Datei definierst. Hier wird ein Bucket mit dem Namen „rahul-boto3-test-delete“ erstellt, den du in den gewünschten Namen ändern kannst.
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)
Erstelle eine Datei“delete-s3-bucket.py“, die den Code zum Löschen eines Buckets enthält. Kopiere den folgenden Code und füge ihn ein.
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)
Jetzt kannst du einen Bucket erstellen.
Um einen Bucket zu erstellen, führst du die Datei“create-s3-bucket.py“ mit folgendem Befehl aus.
pythoncreate-s3-bucket.py
Wenn du den Bucket nicht mehr brauchst und ihn löschen willst, führe die Datei“delete-s3-bucket.py“ mit dem folgenden Befehl aus.
pythondelete-s3-bucket.py
Fazit
Wir haben gesehen, wie einfach es ist, mit der Boto3-Bibliothek von Python einen S3-Bucket zu erstellen und ihn auch wieder zu löschen. Wir haben einen einfachen Bucket erstellt. Du kannst den Code an deine Bedürfnisse und Anforderungen anpassen und einen Bucket mit verschiedenen Parametern erstellen, die in der Methode create_bucket verfügbar sind.