我在任务中使用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
以下是我在任务的.log文件中看到的内容:
ClientError: An error occurred (403) when calling the HeadObject operation: Forbidden
所以,我想,连接形式是错误的。正确填充所有S3参数的正确方法是什么?(即密钥、秘密、存储桶、主机、区域等)
为了在Digital Ocean Spaces上使用Airflow 2.1.0,我必须在此处添加aws_conn_id:
填写模式作为bucket名称、登录名(key)和密码(secret),然后UI中的额外字段包含区域和主机:
将
host
变量移动到Extra对我来说是个好办法由于某些原因,如果自定义S3主机(不同于AWS,如DigitalOcean)不在ExtraVAR中,则气流无法建立连接
另外,在我的情况下,可以从Extra中删除
region_name
相关问题 更多 >
编程相关推荐