You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Airflow 2.1.3连接至MinIO S3并解决403访问报错

问题解答

1. MinIO Access Key/Secret Key 获取方式

你当前docker-compose部署的场景下,已经直接在environment变量中定义了密钥对:

  • MINIO_ROOT_USER 的值就是Access Key,你这里为 user
  • MINIO_ROOT_PASSWORD 的值就是Secret Key,你这里为 password

如果是自定义创建非root权限的密钥,可登录MinIO控制台(默认端口9001),在「身份管理」-「访问密钥」模块自行生成新的密钥对。

2. 403报错原因及Airflow连接正确配置

你遇到的403错误核心原因是:Airflow的S3连接默认指向AWS官方S3服务,没有指定为你的本地MinIO地址,导致认证请求发错了目标地址。

正确的Airflow UI连接配置项:

  • Conn Type:S3
  • Conn Id:自定义命名,例如 minio_s3,需和DAG代码中的参数对应
  • Login:填写MinIO的Access Key,即你这里的 user
  • Password:填写MinIO的Secret Key,即你这里的 password
  • Extra:必须添加以下配置,指定MinIO的服务地址:
    {"endpoint_url": "http://locals3:9000"}
    

注:原配置中的Host、Port字段可以留空,以Extra中的endpoint_url配置为准即可。

DAG测试代码修改

你代码中注释了aws_conn_id参数,默认会调用系统预置的aws_default连接,需要做对应修改:

sensor = S3KeySensor(
    task_id='check_s3_for_file_in_s3',
    bucket_key='test',
    bucket_name='airflow-data',
    aws_conn_id="minio_s3", # 替换为你自己定义的Conn Id
    timeout=18 * 60 * 60,
    poke_interval=120,
    dag=dag)

额外注意事项

  • 请确认你的Airflow环境已安装apache-airflow-providers-amazon依赖包,S3相关的传感器和算子都依赖该包
  • 如果MinIO使用自签HTTPS证书,需要在Extra配置中额外添加"verify": false跳过证书校验
  • 确认airflow-data桶中存在名为test的文件或前缀,否则传感器会一直处于等待状态,但该问题不会触发403报错

内容的提问来源于stack exchange,提问作者Marin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:54:03