boto3 并连接到自定义 url

boto3 and connecting to custom url

我有一个模仿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

有什么想法吗?

谢谢

请按如下方式使用:

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

请查看此 link 以了解更多配置 AWS 凭据的方法。 http://boto3.readthedocs.io/en/latest/guide/configuration.html

1。 boto API 总是寻找传递给连接服务的凭据,没有访问密钥和密码,您无法使用 bot 访问 AWS 资源。

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

否则,您必须向您的 AWS 账户管理员申请一个受限的凭证密钥。

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

3.Even你配置你的S3 bucket允许任何人拿文件,那只能通过url,是文件访问权限,不是bucket访问权限。