我有一个模仿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
有什么想法吗?
由于
答案 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,它是文件访问权限,而不是存储桶访问权限。