boto3并连接到自定义网址

时间:2016-08-23 14:20:13

标签: python python-2.7 boto3

我有一个模仿S3环境的测试环境,我想用boto3编写一些测试脚本。我该如何连接到该服务?

我试过了:

 client = boto3.client('s3', region_name="us-east-1", endpoint_url="http://mymachine")
 client = boto3.client('iam', region_name="us-east-1", endpoint_url="http://mymachine")

两者均无效。

该服务设置为使用IAM身份验证。

我的错误:

 botocore.exceptions.NoCredentialsError: Unable to locate credentials

有什么想法吗?

由于

2 个答案:

答案 0 :(得分:0)

Please use as below :

import boto3 
client = boto3.client( 's3', aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY,)

Please check this link for more ways to configure AWS credentials. http://boto3.readthedocs.io/en/latest/guide/configuration.html

答案 1 :(得分:-1)

1。 boto API总是寻找传递给连接服务的凭证,没有办法在没有访问密钥和密码的情况下使用bot访问AWS资源。

如果您打算使用其他方法,例如临时安全证书,您的AWS管理员必须设置角色等,以允许VM实例使用AWS Security Token Service连接到AWS。

否则,您必须从您的AWS账户管理员处请求受限制的凭证密钥。

2.另一方面,如果您想模仿S3并测试快速上传/下载大量数据以进行开发,那么您应该设置FakeS3。它将采用任何虚拟访问密钥。但是,FakeS3的缺点很少:您无法设置和测试S3存储桶策略。

3.即使您配置S3存储桶以允许任何人获取该文件,它只是通过URL,它是文件访问权限,而不是存储桶访问权限。