Quando eseguo semplicemente il codice seguente, ottengo sempre questo errore.
s3 = boto3.resource('s3')
bucket_name = "python-sdk-sample-%s" % uuid.uuid4()
print("Creating new bucket with name:", bucket_name)
s3.create_bucket(Bucket=bucket_name)
Ho salvato il mio file delle credenziali in formato
C:\Users\myname\.aws\credentials
, da dove Boto dovrebbe leggere le mie credenziali.
La mia impostazione è sbagliata?
Ecco l'output di boto3.set_stream_logger('botocore', level='DEBUG')
.
2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Skipping environment variable credential check because profile name was explicitly set.
2015-10-24 14:22:28,761 botocore.credentials [DEBUG] Looking for credentials via: env
2015-10-24 14:22:28,773 botocore.credentials [DEBUG] Looking for credentials via: shared-credentials-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: config-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: ec2-credentials-file
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: boto-config
2015-10-24 14:22:28,774 botocore.credentials [DEBUG] Looking for credentials via: iam-role
HOME
in modo che punti C:\Users\myname
o AWS_SHARED_CREDENTIALS_FILE
a fare riferimento direttamente al file delle credenziali.
botocore.exceptions.NoRegionError: You must specify a region.
* il mio file di configurazione ↓ si trova nella stessa cartella delle mie credentails. [default] ap-northeast-1
boto3.set_stream_logger('botocore', level='DEBUG')
prima del codice? Mostrerà dove sta cercando le credenziali.