1

我正在尝试使用 python 包awswrangler访问非 AWS S3 服务。

AWS Data Wranger 文档声明您需要创建一个boto3.Session()对象。

问题是boto3.client()支持设置endpoint_url,但boto3.Session()不支持(docs here)

由于这个原因,在我以前的使用中,boto3我一直使用。client

有没有办法boto3.Session()使用自定义创建endpoint_url或以其他方式配置awswrangler以接受自定义端点?

4

3 回答 3

2

我终于找到了配置awswrangler

import awswrangler as wr

wr.config.s3_endpoint_url = 'https://custom.endpoint'
于 2021-03-25T02:27:24.147 回答
2

创建会话后,您也可以使用client。例如:

import boto3

session = boto3.Session()
s3 = session.client('s3', endpoint_url='<custom-endpoint>')
于 2021-03-25T00:45:21.313 回答
1

wr.config如您在答案中所述,awswrangler 的任何配置变量都可以直接使用 config 对象覆盖,但在某些用例中使用 environment variables 可能更清晰或更可取。

在这种情况下,只需设置WR_S3_ENDPOINT_URL为您的自定义端点,配置将在您导入库时反映出来。

于 2021-12-02T22:08:44.787 回答