Boto3 通过 botocore 的 Config 对象接受显式的代理策略:

import boto3
from botocore.config import Config

network = Config(proxies={
    'http': 'http://proxy.example:8080',
    'https': 'http://proxy.example:8080',
})
s3 = boto3.client('s3', config=network)

映射的键选择目标协议,值描述代理端点。这个示例通过一个 HTTP 转发代理发送 HTTP 和 HTTPS 两种服务请求。若要在没有代理账户的情况下测试允许访问的公共 AWS 端点,可以从 HTTP 代理列表中取一个 HTTP 条目来提供这两个 URL。

若值使用 https://,则需要一个接受客户端 TLS 连接的代理监听器。不要仅仅为了匹配 HTTPS 键而更改值的协议方案。

Config.proxies 会覆盖该客户端对 HTTP_PROXY 和 HTTPS_PROXY 环境变量的代理选择。其他客户端可以用各自的 Config 对象构建;构建这个对象不会改变进程级的环境变量。

在把它集成进应用时,请保留其他必需的客户端选项,例如区域和重试策略。AWS 凭证仍留在应用常规的凭证配置中。无需修改 EndpointCreator 或 botocore 的其他私有方法。

对于到 HTTPS 代理的 TLS 连接,Config 还有 proxies_config 选项,例如 proxy_ca_bundle 和 proxy_client_cert。这些选项涉及代理连接上的信任和客户端证书认证。它们与选择 AWS 服务端点或签署 AWS API 请求是分开的。

相关文章