通过多个线程读取 S3 对象时连接池已满警告

dev*_*v ツ 3 amazon-s3 boto3

我正在使用 boto3 读取 s3 对象

s3_client = boto3.client('s3', region_name='us-east-1')
obj = s3_client.get_object(Bucket=S3_BUCKET, Key=key)
Run Code Online (Sandbox Code Playgroud)

我通过 50-100 个线程运行它来访问不同的对象并收到警告:

urllib3.connectionpool - 警告 - 连接池已满,正在丢弃连接:s3.amazonaws.com

如何增加连接池大小?

有没有更好的方法来使用多个线程访问不同的S3对象?

dev*_*v ツ 7

添加max_pool_connections(默认10)解决了它。

client_config = botocore.config.Config(
    max_pool_connections=50
)
s3_client = boto3.client('s3', region_name='us-east-1', config=client_config)
Run Code Online (Sandbox Code Playgroud)