我得到以下错误:
File "/Users/tai/Desktop/FlashY/flashy/sniffer/database.py", line 21, in <module>
import dynamoStorage
File "/Users/tai/Desktop/FlashY/flashy/sniffer/dynamoStorage.py", line 37, in <module>
swfTable = Table(decompiled_dynamo_table, connection=dynamoConn)
File "/Library/Python/2.7/site-packages/boto/dynamodb2/table.py", line 107, in __init__
self.connection = DynamoDBConnection()
File "/Library/Python/2.7/site-packages/boto/dynamodb2/layer1.py", line 183, in __init__
super(DynamoDBConnection, self).__init__(**kwargs)
File "/Library/Python/2.7/site-packages/boto/connection.py", line 1073, in __init__
profile_name=profile_name)
File "/Library/Python/2.7/site-packages/boto/connection.py", line 572, in __init__
host, config, self.provider, self._required_auth_capability())
File "/Library/Python/2.7/site-packages/boto/auth.py", line 883, in get_auth_handler
'Check your credentials' % (len(names), str(names)))
boto.exception.NoAuthHandlerFound: No handler was ready to authenticate. 1 handlers were checked. ['HmacAuthV4Handler'] Check your credentials
当我把auth直接放在文件中时,我的密钥就工作了,所以我知道密钥是正确的。
我有一个awsAccess.py:
#aswAccess holds the names of the bash environment set keys.
#used by other classes to create a connection to aws
aws_access_key_id=os.getenv('AWS_ACCESS_KEY');
aws_secret_access_key=os.getenv('AWS_SECRET_KEY');
aws_dynamo_region=os.getenv('DYANAMO_REGION')
我有for database.py
#for connecting to aws
aws_access_key_id=awsAccess.aws_access_key_id
aws_secret_access_key=awsAccess.aws_secret_access_key
aws_dynamo_region=awsAccess.aws_dynamo_region
aws_dynamo_table="decompiled_swf_text"
conn= S3Connection(aws_access_key_id,aws_secret_access_key);
dynamoConn = boto.connect_dynamodb(aws_access_key_id, aws_secret_access_key)
dTable = dynamoConn.get_table(aws_dynamo_table)
所以我知道钥匙本身是正确的。
我有一个.bash_配置文件,如下所示(**表示已删除,我也尝试了使用和不使用“”:
export AWS_ACCESS_KEY="myAccessKey**"
export AWS_SECRET_KEY="mySecretKey**"
export DYNAMO_REGION="us-east"
我运行source ~/.bash_profile,然后尝试运行但得到错误。我不明白为什么导入会改变同一个键字符串的影响。
我对Ubuntu willy(15.10)有问题。
这里有一个ConfigParser的更新。
.get
有一个附加参数,但boto.pyami.config不支持该参数。见here和here
几点建议:
boto.connect_<something>
中删除身份验证参数。这将允许boto
使用内置的身份验证处理程序,这些处理程序将尝试读取文件、检查环境变量等。您将使代码更简单,同时仍然能够提供任何boto
身份验证方法所需的所有内容。boto.cfg
),并将BOTO_CONFIG
环境变量设置为此文件的完整路径,例如设置为`“/home/javl/.boto/boto.cfg”null
的boto.connect_<something>
,它的工作原理是boto
将检查其他方法以查找该值。profile
,允许引用boto配置文件中的特定配置文件。这让我可以切换到代码中任何地方的不同配置文件。有关更多提示和详细信息,请参见related SO answer
相关问题 更多 >
编程相关推荐