【问题标题】:AWS boto3: see proof that client is using transfer acceleration endpoint?AWS boto3:看到客户端正在使用传输加速端点的证据?
【发布时间】:2026-01-21 21:30:01
【问题描述】:

我正在尝试为某些 AWS S3 存储桶启用 Transfer Acceleration。

我启动了我的客户会话:

client = boto3.client(
        "s3",
        aws_access_key_id=environ.get("AWS_ACCESS_KEY_ID"),
        aws_secret_access_key=environ.get("AWS_SECRET_ACCESS_KEY")
    )

然后我通过 S3 控制台打开 Transfer Acceleration,并确保在代码中启用并打开它:

response = client.put_bucket_accelerate_configuration(
    Bucket='string',
    AccelerateConfiguration={
        'Status': 'Enabled'
    }
)

response = client.get_bucket_accelerate_configuration(
    Bucket='string'
)

两个 sn-ps 都直接来自 boto3 文档。稍后我可以在代码中成功上传到存储桶:

client.upload_fileobj(data, environ.get("AWS_S3_BUCKET"), 'key')

我尝试在启动客户端会话时设置 endpoint_url 参数,但这只是在我的存储桶内创建了一个新文件夹(带有我的存储桶标题)。

似乎 boto3 是唯一没有某种“使用传输加速端点”标志的 SDK。我知道它已在存储桶上启用,并且我有证据证明,但我没有证据表明它实际上正在使用端点

我尝试过查看客户端元数据、存储桶元数据以及返回任何类型数据的所有其他客户端方法,但我找不到证明它实际上使用了加速端点的证据。

我错过了什么吗?

【问题讨论】:

  • 您是否尝试过在 boto3 中启用详细登录?它可能会记录它正在使用的域。

标签: python amazon-web-services amazon-s3 boto3


【解决方案1】:

Connect to S3 accelerate endpoint with boto3 提到使用:

Config(s3={"use_accelerate_endpoint": True})

这个参数列在Config Reference — botocore documentation:

s3 (dict)

use_accelerate_endpoint -- 指是否使用 S3 Accelerate 端点。该值必须是布尔值。如果为 True,客户端将使用 S3 Accelerate 端点。如果正在使用 S3 Accelerate 端点,则寻址方式将始终是虚拟的。

所以尝试使用:

s3_client = boto3.client("s3", config=Config(s3={"use_accelerate_endpoint": True}))

【讨论】:

    最近更新 更多