it-swarm.com.de

Wie lege ich die Zugangsdaten für die Verbindung zu boto3 S3 fest?

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?

33
Robert Brax

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')
51
Alasdair

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
                      )
25
Rajez