气流S3客户端错误禁止:使用UI的S3连接设置错误

2024-04-20 11:32:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在任务中使用S3Hook从DigitalOcean spaces上的s3 bucket下载文件。下面是一个凭证的示例,它完美地使用boto3,但在S3Hook中使用时会导致错误:

[s3_bucket]
default_region = fra1
default_endpoint=https://fra1.digitaloceanspaces.com
default_bucket=storage-data
bucket_access_key=F7QTVFMWJF73U75IB26D
bucket_secret_key=mysecret

这就是我在Admin->;中填写连接表单的方式;连接: enter image description here

以下是我在任务的.log文件中看到的内容:

ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden

所以,我想,连接形式是错误的。正确填充所有S3参数的正确方法是什么?(即密钥、秘密、存储桶、主机、区域等)


Tags: 文件keydefault示例s3bucket错误boto3
2条回答

为了在Digital Ocean Spaces上使用Airflow 2.1.0,我必须在此处添加aws_conn_id:

s3_client = S3Hook(aws_conn_id='123.ams3.digitaloceanspaces.com')

填写模式作为bucket名称、登录名(key)和密码(secret),然后UI中的额外字段包含区域和主机:

{"host": "https://ams3.digitaloceanspaces.com","region_name": "ams3"}

host变量移动到Extra对我来说是个好办法

由于某些原因,如果自定义S3主机(不同于AWS,如DigitalOcean)不在ExtraVAR中,则气流无法建立连接

另外,在我的情况下,可以从Extra中删除region_name

相关问题 更多 >