2016-01-18 9 views
5

Mit boto konnte ich eine Verbindung zu öffentlichen S3-Buckets ohne Anmeldeinformationen herstellen, indem Sie das Schlüsselwort anon= übergeben.Kann ich Boto3 anonym benutzen?

s3 = boto.connect_s3(anon=True) 

Ist dies mit boto3 möglich?

Antwort

5

Ja. Ihre Anmeldeinformationen werden verwendet, um alle von Ihnen gesendeten Anforderungen zu signieren. Sie müssen also den Client so konfigurieren, dass er den Signierungsschritt überhaupt nicht ausführt. Sie können das tun, wie folgt:

import boto3 
from botocore import UNSIGNED 
from botocore.client import Config 

s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED)) 
# Use the client 
4

deaktivieren Unterzeichnung

import boto3 

from botocore.handlers import disable_signing 
resource = boto3.resource('s3') 
resource.meta.client.meta.events.register('choose-signer.s3.*', disable_signing) 
+0

Wird diese davon abhalten, Anmeldeinformationen verwendet werden, wenn sie vorhanden sind? Ist es als Standard geeignet? – MRocklin

+1

Es wird verhindern, dass die Anmeldeinformationen auf diesem Client verwendet werden. Sie benötigen einen anderen Client, um eine Verbindung zu eingeschränkten S3-Buckets herzustellen. Das Gleiche gilt für meine Lösung. Hinweis: Beide Lösungen machen genau das Gleiche. –