Auf boto habe ich meine Anmeldeinformationen angegeben, wenn ich eine Verbindung zu S3 hergestellt habe:
import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )
Ich könnte dann S3 verwenden, um meine Operationen auszuführen (in meinem Fall ein Objekt aus einem Bucket löschen).
Mit boto3 sind alle Beispiele, die ich gefunden habe, solche:
import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()
Ich konnte meine Anmeldeinformationen nicht angeben und daher schlagen alle Versuche mit InvalidAccessKeyId
Fehler fehl .
Wie kann ich mit boto3 Anmeldeinformationen angeben?
python
amazon-web-services
amazon-s3
boto3
Robert Brax
quelle
quelle
Antworten:
Sie können eine Sitzung erstellen :
Verwenden Sie dann diese Sitzung, um eine S3-Ressource abzurufen:
quelle
Sie können eine
client
mit neuer Sitzung direkt wie unten erhalten.quelle
Dies ist älter, aber hier als Referenz zu platzieren. boto3.resource implementiert nur die Standardsitzung. Sie können die Sitzungsdetails von boto3.resource durchgehen.
https://github.com/boto/boto3/blob/86392b5ca26da57ce6a776365a52d3cab8487d60/boto3/session.py#L265
Sie können sehen, dass es nur die gleichen Argumente wie Boto3.Session braucht
quelle
Ich möchte die Antwort von @ JustAGuy erweitern. Die Methode, die ich bevorzuge, ist
AWS CLI
das Erstellen einer Konfigurationsdatei. Der Grund dafür ist, dass bei der KonfigurationsdateiCLI
oderSDK
automatisch nach Anmeldeinformationen im~/.aws
Ordner gesucht wird. Und das Gute ist, dassAWS CLI
es in Python geschrieben ist.Sie können Cli von Pypi bekommen, wenn Sie es noch nicht haben. Hier sind die Schritte, um cli vom Terminal aus einzurichten
Danach können Sie auf
boto
jede API zugreifen, ohne Schlüssel angeben zu müssen (es sei denn, Sie möchten andere Anmeldeinformationen verwenden).quelle
Es gibt zahlreiche Möglichkeiten, Anmeldeinformationen zu speichern, während boto3.resource () weiterhin verwendet wird. Ich verwende die AWS CLI-Methode selbst. Es funktioniert perfekt.
https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAys
quelle