这可能是由于AWS凭证或S3桶的权限问题导致的。您可以尝试使用AWS CLI命令来验证您的凭证以及S3桶的权限是否正确。如果您已经确认了凭证和权限,您可以修改Airflow DAG中的S3ListOperator代码,以添加必要的参数和选项。以下是一个示例代码:
from airflow.operators import S3ListOperator
from airflow.models import DAG
from datetime import datetime, timedelta
default_args = {
'owner': 'Airflow',
'depends_on_past': False,
'start_date': datetime(2022, 1, 1),
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(
's3_list_example',
default_args=default_args,
schedule_interval='0 0 * * *'
)
list_files = S3ListOperator(
task_id='list_files',
bucket='your-bucket-name',
prefix='your-folder-name',
delimiter='/',
aws_conn_id='aws_default', # 你的AWS 凭证的connection ID
region_name='us-west-2', # 你的bucket存放区域
dag=dag
)
list_files
请注意,您需要将bucket
参数替换为您的S3桶名称,将prefix
参数替换为您希望列出的对象前缀,将aws_conn_id
参数替换为您的AWS凭证的连接ID,将region_name
参数替换为您的S3存储桶的存储区域。运行此DAG应该会列出您指定前缀的所有文件。
上一篇:ApacheAirflow的dag列表显示没有dag
下一篇:ApacheAirflow的UI显示DAG导入错误(IndexError:listindexoutofrange),但DAG正常工作。