如何为 Python boto3 指定 AWS SDK 的区域

How do you specify region for AWS SDK for Python boto3

从cli我可以执行命令: aws s3api list-objects –-bucket BUCKETNAME -—region REGIONAME

如何为 botocore3 list_objects_v2 等价地指定区域?

可以边设置参数边添加

s3_client = boto3.client(
             's3',
             aws_access_key_id='access_key_here',
             aws_secret_access_key='access_key_secret_here',
             config=boto3.session.Config(signature_version='s3v4'),
             region_name='region_here'
            )

那么您获取对象列表的请求:

response = s3_client.list_objects_v2(Bucket=bucket_name, Prefix='', Delimiter='/')

在 Python 文档中有很多关于如何执行此操作的示例。当您使用 AWS 开发工具包设置服务客户端时,所有语言都允许您设置区域。 Python 的 AWS 开发工具包也不例外。

下面是一个代码示例,向您展示了如何在创建服务客户端时设置区域。

import boto3
from botocore.config import Config

proxy_definitions = {
    'http': 'http://proxy.amazon.com:6502',
    'https': 'https://proxy.amazon.org:2010'
}

my_config = Config(
    region_name='us-east-2',
    signature_version='v4',
    proxies=proxy_definitions,
    proxies_config={
        'proxy_client_cert': '/path/of/certificate'
    }
)

client = boto3.client('kinesis', config=my_config)

可在此处找到更多信息:

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html#guide-configuration