在boto上,当以这种方式连接到S3时,我常常指定我的凭据:
import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )
然后我可以使用S3执行操作(在我的例子中,从bucket中删除一个对象)。
对于boto3,我发现的所有例子都是这样的:
import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()
我无法指定凭据,因此所有尝试都失败,并出现InvalidAccessKeyId
错误。
如何使用boto3指定凭据?
您可以直接使用下面的新会话获得一个
client
。您可以创建一个session:
然后使用该会话获取S3资源:
我想详述一下“JustAGuy”的答案。我更喜欢的方法是使用
AWS CLI
创建配置文件。原因是,使用配置文件,CLI
或SDK
将自动在~/.aws
文件夹中查找凭据。好在AWS CLI
是用python编写的。如果您还没有从pypi获得cli。以下是从终端设置cli的步骤
在此之后,您可以访问
boto
和任何api,而无需指定密钥(除非您想使用其他凭据)。相关问题 更多 >
编程相关推荐