【发布时间】:2022-08-06 00:25:55
【问题描述】:
我像这样实例化一个 boto3 S3 resource(代码简化):
import os
from pathlib import Path
import boto3
s3_resource = boto3.resource(
\"s3\",
aws_access_key_id=os.getenv(\"AWS_ACCESS_KEY_ID\"),
aws_secret_access_key=os.getenv(\"AWS_SECRET_ACCESS_KEY\"),
# NOTE: My config is:
# [default]
# region = eu-west-1
region_name=os.getenv(\"region_name\"),
)
如何获取 S3 资源关联的区域?是否有我可以查询的类/实例的属性?
我检查了boto3 docs for the S3 Service Resource object,但找不到这样的属性。我还检查了这个related question,但它与来自boto3 的client 而不是resource 对象有关。
上下文:我想检查该区域,以便我可以确保读取我的 ~/.aws/config 以提供该区域,因为检查 os.getenv(\"region_name\") 返回的内容 None 因为我没有这样的环境变量。如果你也能回答这个问题,那就加分了。如代码中所述,我的配置指向eu-west-1地区。
我不熟悉在 Python 中以编程方式使用 S3(我主要使用 AWS CLI),因此如有必要,请建议对问题进行编辑。
-
aws_access_key_id=os.getenv(\"AWS_ACCESS_KEY_ID\")- 这是多余的,因为 SDK 会自动执行此操作。它确实可以防止从配置文件加载配置。在此处查看凭据搜索顺序:boto3.amazonaws.com/v1/documentation/api/latest/guide/…
标签: python amazon-web-services amazon-s3 boto3