2016-10-19 20 views
0

それは私のWindowsマシン上で動作しないので、私はS3公開バケットのS3資格情報?

s3 = boto3.resource('s3') 
s3.Object('bucketname', timestamped_filename).put(Body=open(FILE_SAVE_PATH, 'rb')) 

上のファイルをアップロードするには、このスニペットは私のバケットは、みんなのために削除/アップロード権限を持っています。 はしかし、私は私のMac上で同じコードを実行しようとすると、それは

botocore.exeptions.NoCredentialsError: Unable to locate credentials

をスロー通常、この動作ですか? 公開バケツにアクセスしている場合、どのような資格情報を提供することができますか?

ありがとうございます。

答えて

0

AWSへのAPI呼び出しを行うときは、有効な資格情報をに指定する必要があります。これらの資格情報はIAMユーザーに関連付けられ、AWSサービスへのアクセスを許可します。

API呼び出しを行う(またはAWS Command-Line Interface (CLI)を使用して)Amazon EC2インスタンスから、これらの資格情報は、起動時にインスタンスにIAMロールを割り当てることにより、EC2インスタンスに付与することができます。

非EC2コンピュータからを呼び出すときは、構成ファイルまたは環境変数を使用して資格情報を提供する必要があります。

Windowsマシンは役割を持つEC2インスタンスであるか、有効な資格情報を持つローカル構成ファイルがあるようです。あなたのMacにはこれらのいずれもないようです。

参照:boto3 Credentials documentation