Bei boto habe ich meine Anmeldeinformationen angegeben, wenn ich mich so mit S3 verbinde:
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).
Bei boto3 sind alle Beispiele, die ich gefunden habe:
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 dem Fehler InvalidAccessKeyId
fehl.
Wie kann ich mit boto3 Anmeldeinformationen angeben?
Sie können eine Sitzung erstellen :
import boto3
session = boto3.Session(
aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)
Verwenden Sie dann diese Sitzung, um eine S3-Ressource abzurufen:
s3 = session.resource('s3')
Sie können eine client
mit neuer Sitzung direkt wie unten erhalten.
s3_client = boto3.client('s3',
aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
region_name=REGION_NAME
)