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

Airflow S3ListOperator无法列出S3文件,请求排查原因

问题:Airflow S3ListOperator返回空数组但目标路径存在文件

代码片段

@task
def list_outbound_file():
    context = get_current_context()
    step_params = context['ti'].xcom_pull(
        task_ids='set_run_params', key='return_value')

    s3_root_dir = step_params['%s3_root_dir']
    client_id = step_params['%client_id']
    client_dataset_version = step_params['%client_dataset_version']

    s3_file = S3ListOperator(
        task_id='list_outbound_file',
        bucket=bucket,
        prefix=f'{s3_root_dir}/outbound/client={client_id}/client_dataset_version={client_dataset_version}/',
        delimiter='/',
        aws_conn_id='aws_adaptive_retry_connection'
    )
    return s3_file.execute(context)

任务日志

[2023-04-05, 13:52:20 UTC] {{s3.py:679}} INFO - Getting the list of files from bucket: paymentintegrity-chc-dev-dataplatform-us-east-1 in prefix: data/ecob/outbound/client=ecob_orxnv_wk-optumrx/client_dataset_version=2023-04-04-13-00-00-000000/ (Delimiter /)
[2023-04-05, 13:52:20 UTC] {{base.py:68}} INFO - Using connection ID 'aws_adaptive_retry_connection' for task execution.
[2023-04-05, 13:52:20 UTC] {{base_aws.py:100}} INFO - Retrieving region_name from Connection.extra_config['region_name']
[2023-04-05, 13:52:20 UTC] {{python.py:173}} INFO - Done. Returned value was: []

可能的原因及解决方法

  • 前缀末尾斜杠与delimiter的组合问题:当前prefix末尾加了/,同时设置delimiter='/',S3ListOperator只会返回该前缀下的子目录,不会返回文件。解决方法:要么去掉prefix末尾的/,要么删除delimiter参数,这样就能列出该前缀下的所有文件对象。
  • AWS连接权限不足:检查aws_adaptive_retry_connection对应的IAM角色是否拥有s3:ListBucket权限,且权限覆盖目标bucket及前缀路径。S3在权限不足时不会报错,只会返回空列表。
  • 变量值存在隐藏字符:确认step_params中的s3_root_dir、client_id、client_dataset_version是否包含空格、换行等不可见字符,导致生成的prefix与实际S3路径不匹配。可以在代码中添加打印语句输出生成的prefix,和实际路径对比验证。
  • 文件处于归档状态:如果目标文件是Glacier等归档类存储,且未恢复到可读取状态,S3ListOperator无法列出这类对象,检查文件的存储状态是否正常。
  • Airflow依赖包版本问题:部分旧版本的apache-airflow-providers-amazon包中,S3ListOperator存在处理prefix或delimiter的bug,尝试升级到最新稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 04:47:06