[英]How to get the region of a boto3 S3 resource instance
我像這樣實例化一個 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 資源關聯的區域? 是否有我可以查詢的 class / 實例的屬性?
我檢查了 S3 服務資源 object 的 boto3 文檔,但找不到這樣的屬性。 我還檢查了這個相關問題,但它與來自 boto3 的client
而不是resource
object 相關。
上下文:我想檢查該區域,以便我可以確保讀取我的 ~/.aws/config 以提供該區域,因為檢查什么os.getenv("region_name")
返回None
因為我沒有這樣的環境變量。 如果你也能回答這個問題,那就是加分項了。 如代碼中所述,我的配置指向eu-west-1區域。
我不熟悉在 Python 中以編程方式使用 S3(我主要使用 AWS CLI),因此如有必要,請建議對問題進行編輯。
好吧,每個 boto3 資源在 meta 中都有一個客戶端,所以你可以這樣做:
s3_resource.meta.client._client_config.region_name
您可以通過 AWS 控制台 (UI) 檢查該區域。 轉到:S3 --> --> 屬性選項卡,您將看到存儲桶的“AWS 區域”:
編輯:根據您的評論,也許您正在尋找get_bucket_location :
返回存儲桶所在的區域。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.