Google cloud platform 如何使用Airflow中的电子邮件操作符附加文件

Google cloud platform 如何使用Airflow中的电子邮件操作符附加文件,google-cloud-platform,airflow,google-cloud-composer,Google Cloud Platform,Airflow,Google Cloud Composer,我使用了参数文件=[“abc.txt”]。我从文件里得到的信息 但我得到的错误是找不到文件。我的问题是这个气流将从何处拾取我的文件。它是来自composer环境中的GCS Bucket还是DAG文件夹 我需要上传文件的位置以及'files'参数的正确语法是什么 提前感谢。文件取自本地文件系统,files参数实际上是一个字符串列表,如files=[“abc.txt”] 要将文件上载到composer,您可以使用,然后您可以从/home/aiffort/gcs/data/ 添加了“文件”属性的示例如

我使用了参数文件=[“abc.txt”]。我从文件里得到的信息

但我得到的错误是找不到文件。我的问题是这个气流将从何处拾取我的文件。它是来自composer环境中的GCS Bucket还是DAG文件夹

我需要上传文件的位置以及'files'参数的正确语法是什么


提前感谢。

文件取自本地文件系统,files参数实际上是一个字符串列表,如
files=[“abc.txt”]

要将文件上载到composer,您可以使用,然后您可以从
/home/aiffort/gcs/data/

添加了“文件”属性的示例如下:

从afflow.operators导入电子邮件\u operator
#发送电子邮件确认
email\u summary=email\u operator.EmailOperator(
任务\u id='email\u摘要',
to=models.Variable.get('email'),
主题=“示例电子邮件”,
html_content=“html内容”,
文件=['/home/aiffort/gcs/data/abc.txt'])

您还可以将文件下载到本地系统,然后发送;但是,您需要确保下载的文件和电子邮件操作员正确无误。

当文件位于另一个存储桶中而不在Airflow composer存储桶中时,如何附加文件?您需要先将文件下载到本地系统。您可以使用下载文件,然后发送。您只需确保这两项任务都已完成,以便EmailOperator可以在本地系统上找到文件。如果文件大小很大,这确实需要更多的时间。是否有任何解决方案,我们可以直接使用相关的GCS bucket,而不是下载到本地系统。根据我的要求,我不应该让本地系统卷入这个问题。你不能只使用谷歌云存储URI将文件附加到电子邮件。如果您不想下载该文件,那么可以选择发送文件URL,直接从GCS而不是实际文件下载该文件。你可以用这个。此外,如果文件真的很大,它也可能会碰到电子邮件附件的限制,所以发送URL似乎是一个很好的方法。当它在另一个桶中而不是在气流合成器桶中时,如何附加文件?