gpt4 book ai didi

python - 使用 Boto3 配置文件覆盖 S3 端点

转载 作者:IT老高 更新时间:2023-10-28 22:21:29 27 4
gpt4 key购买 nike

概述:

我正在尝试使用配置文件 (~/aws/confg) 覆盖 boto3 中的某些变量。在我的用例中,我想使用 fakes3 服务并将 S3 请求发送到 localhost。

示例:

boto(不是 boto3)中,我可以在 ~/.boto 中创建一个类似于此的配置:

[s3]
host = localhost
calling_format = boto.s3.connection.OrdinaryCallingFormat

[Boto]
is_secure = False

并且客户端可以成功获取所需的更改,而不是将流量发送到真正的 S3 服务,而是将其发送到本地主机。

>>> import boto
>>> boto.connect_s3()
S3Connection:localhost
>>>

我尝试了什么:

我正在尝试使用 boto3 库来实现类似的结果。通过查看源代码,我发现我可以使用 ~/aws/config 位置。我还在 botocoreunittests 文件夹中找到了一个示例配置。

我尝试修改配置以实现所需的行为。但不幸的是,它不起作用。

这里是配置:

[default]
aws_access_key_id = XXXXXXXXX
aws_secret_access_key = YYYYYYYYYYYYYY
region = us-east-1
is_secure = False
s3 =
host = localhost

问题:

  1. 如何使用配置文件覆盖 clients 变量?
  2. 在哪里可以找到配置的允许变量的完整列表?

最佳答案

您不能在配置文件中设置主机,但是您可以使用 boto3 从代码中覆盖它。

import boto3

session = boto3.session.Session()

s3_client = session.client(
service_name='s3',
aws_access_key_id='aaa',
aws_secret_access_key='bbb',
endpoint_url='http://localhost',
)

然后你就可以像往常一样互动了。

print(s3_client.list_buckets())

关于python - 使用 Boto3 配置文件覆盖 S3 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32618216/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com