2016-01-18 26 views
5

Con boto È possibile connettersi a bucket S3 pubblici senza credenziali passando l'argomento parola chiave anon=.Posso usare anonimamente boto3?

s3 = boto.connect_s3(anon=True) 

E 'possibile con boto3?

risposta

5

Sì. Le tue credenziali vengono utilizzate per firmare tutte le richieste che invii, quindi ciò che devi fare è configurare il client in modo che non esegua affatto la fase della firma. Potete farlo come segue:

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

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

Disabilita firma

import boto3 

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

Sarà questo smettere di credenziali da essere utilizzato se sono presenti? È adatto per impostare come predefinito? – MRocklin

+1

Impedirà l'utilizzo delle credenziali su quel client. Avrai bisogno di un altro client per connettersi a bucket s3 con restrizioni. Lo stesso vale per la mia soluzione. Nota: entrambe le soluzioni fanno esattamente la stessa cosa. –