我正试图使用python包awswrangler
访问非AWS S3服务。
AWS Data Wranger文档指出您需要创建一个boto3.Session()
对象。
问题是boto3.client()
支持设置endpoint_url
,但boto3.Session()
不支持(此处为文档(。
在我以前使用boto3
时,出于这个原因,我一直使用client
。
有没有办法用自定义endpoint_url
创建boto3.Session()
,或者将awswrangler
配置为接受自定义端点?
我终于找到了awswrangler
:的配置
import awswrangler as wr
wr.config.s3_endpoint_url = 'https://custom.endpoint'
awswrangler的任何配置变量都可以直接使用wr.config
配置对象覆盖,正如您在回答中所述,但在某些用例中使用环境变量可能更干净或更可取。
在这种情况下,只需将WR_S3_ENDPOINT_URL
设置为自定义端点,配置将在导入库时反映出来。
创建会话后,也可以使用client
。例如:
import boto3
session = boto3.Session()
s3 = session.client('s3', endpoint_url='<custom-endpoint>')