airflow.providers.amazon.aws.operators.s3

此模組包含 AWS S3 運算元。

屬性

BUCKET_DOES_NOT_EXIST_MSG

S3CreateBucketOperator

此運算元建立一個 S3 儲存桶。

S3DeleteBucketOperator

此運算元刪除一個 S3 儲存桶。

S3GetBucketTaggingOperator

此運算元獲取 S3 儲存桶的標籤。

S3PutBucketTaggingOperator

此運算元為 S3 儲存桶設定標籤。

S3DeleteBucketTaggingOperator

此運算元刪除 S3 儲存桶的標籤。

S3CopyObjectOperator

建立一個已儲存在 S3 中的物件的副本。

S3CreateObjectOperator

從字串或位元組型別的 data 建立一個新物件。

S3DeleteObjectsOperator

使用單個 HTTP 請求從儲存桶中刪除單個物件或多個物件。

S3FileTransformOperator

將資料從源 S3 位置複製到本地檔案系統的臨時位置。

S3ListOperator

列出儲存桶中名稱帶有給定字串字首的所有物件。

S3ListPrefixesOperator

列出儲存桶中名稱帶有給定字串字首的所有子資料夾。

模組內容

airflow.providers.amazon.aws.operators.s3.BUCKET_DOES_NOT_EXIST_MSG = "Bucket with name: %s doesn't exist"[原始碼]
class airflow.providers.amazon.aws.operators.s3.S3CreateBucketOperator(*, bucket_name, **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

此運算元建立一個 S3 儲存桶。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 建立 Amazon S3 儲存桶

引數:
template_fields: collections.abc.Sequence[str][原始碼]
aws_hook_class[原始碼]
bucket_name[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3DeleteBucketOperator(bucket_name, force_delete=False, **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

此運算元刪除一個 S3 儲存桶。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 刪除 Amazon S3 儲存桶

引數:
template_fields: collections.abc.Sequence[str][原始碼]
aws_hook_class[原始碼]
bucket_name[原始碼]
force_delete = False[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3GetBucketTaggingOperator(bucket_name, aws_conn_id='aws_default', **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

此運算元獲取 S3 儲存桶的標籤。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 獲取 Amazon S3 儲存桶的標籤

引數:
template_fields: collections.abc.Sequence[str][原始碼]
aws_hook_class[原始碼]
bucket_name[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3PutBucketTaggingOperator(bucket_name, key=None, value=None, tag_set=None, **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

此運算元為 S3 儲存桶設定標籤。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 設定 Amazon S3 儲存桶的標籤

引數:
  • bucket_name (str) – 要新增標籤的儲存桶名稱。

  • key (str | None) – 要新增標籤的鍵/值對中的鍵部分。如果提供了鍵,則必須同時提供值。

  • value (str | None) – 要新增標籤的鍵/值對中的值部分。如果提供了值,則必須同時提供鍵。

  • tag_set (dict | list[dict[str, str]] | None) – 一個包含標籤的字典,或一個鍵/值對列表。

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

template_fields: collections.abc.Sequence[str][原始碼]
template_fields_renderers[原始碼]
aws_hook_class[原始碼]
key = None[原始碼]
value = None[原始碼]
tag_set = None[原始碼]
bucket_name[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3DeleteBucketTaggingOperator(bucket_name, **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

此運算元刪除 S3 儲存桶的標籤。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 刪除 Amazon S3 儲存桶的標籤

引數:
template_fields: collections.abc.Sequence[str][原始碼]
aws_hook_class[原始碼]
bucket_name[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3CopyObjectOperator(*, source_bucket_key, dest_bucket_key, source_bucket_name=None, dest_bucket_name=None, source_version_id=None, acl_policy=None, meta_data_directive=None, **kwargs)[原始碼]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

建立一個已儲存在 S3 中的物件的副本。

注意:此處使用的 S3 連線需要同時擁有源儲存桶/鍵和目標儲存桶/鍵的訪問許可權。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南: 複製 Amazon S3 物件

引數:
  • source_bucket_key (str) –

    源物件的鍵。(templated)

    可以是完整的 s3:// 風格 URL,也可以是根目錄下的相對路徑。

    當指定為完整的 s3:// URL 時,請省略 source_bucket_name。

  • dest_bucket_key (str) –

    要複製到的物件的鍵。(templated)

    指定 dest_bucket_key 的約定與 source_bucket_key 相同。

  • source_bucket_name (str | None) –

    源物件所在的 S3 儲存桶名稱。(templated)

    source_bucket_key 作為完整的 s3:// URL 提供時,應省略此項。

  • dest_bucket_name (str | None) –

    複製物件到的 S3 儲存桶名稱。(templated)

    dest_bucket_key 作為完整的 s3:// URL 提供時,應省略此項。

  • source_version_id (str | None) – 源物件的版本 ID(可選)

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

  • acl_policy (str | None) – 指定上傳到 S3 儲存桶的檔案的預設 ACL 策略的字串。

  • meta_data_directive (str | None) – 是從源物件 COPY 元資料,還是使用請求中提供的元資料 REPLACE 元資料。

template_fields: collections.abc.Sequence[str][原始碼]
aws_hook_class[原始碼]
source_bucket_key[原始碼]
dest_bucket_key[原始碼]
source_bucket_name = None[原始碼]
dest_bucket_name = None[原始碼]
source_version_id = None[原始碼]
acl_policy = None[原始碼]
meta_data_directive = None[原始碼]
execute(context)[原始碼]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

get_openlineage_facets_on_start()[原始碼]
class airflow.providers.amazon.aws.operators.s3.S3CreateObjectOperator(*, s3_bucket=None, s3_key, data, replace=False, encrypt=False, acl_policy=None, encoding=None, compression=None, **kwargs)[source]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

從字串或位元組型別的 data 建立一個新物件。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南:建立 Amazon S3 物件

引數:
  • s3_bucket (str | None) – 要儲存物件的 S3 儲存桶名稱。(模板化的) 當 s3_key 提供為完整的 s3:// URL 時應省略此引數。

  • s3_key (str) – 要建立的物件的鍵。(模板化的) 可以是完整的 s3:// 格式 URL,也可以是從根級別開始的相對路徑。當指定為完整的 s3:// URL 時,請省略 s3_bucket

  • data (str | bytes) – 要儲存為內容的字串或位元組。

  • replace (bool) – 如果為 True,如果鍵已存在,將覆蓋它。

  • encrypt (bool) – 如果為 True,檔案將在伺服器端由 S3 加密,並在 S3 中以加密形式靜態存放。

  • acl_policy (str | None) – 指定上傳到 S3 儲存桶的檔案的預設 ACL 策略的字串。

  • encoding (str | None) – 字串到位元組的編碼。僅當 data 提供為字串時才應指定此引數。

  • compression (str | None) – 要使用的壓縮型別,目前僅支援 gzip。僅當 data 提供為字串時才能指定此引數。

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

template_fields: collections.abc.Sequence[str][source]
aws_hook_class[source]
s3_bucket = None[source]
s3_key[source]
data[source]
replace = False[source]
encrypt = False[source]
acl_policy = None[source]
encoding = None[source]
compression = None[source]
execute(context)[source]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

get_openlineage_facets_on_start()[source]
class airflow.providers.amazon.aws.operators.s3.S3DeleteObjectsOperator(*, bucket, keys=None, prefix=None, from_datetime=None, to_datetime=None, **kwargs)[source]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

使用單個 HTTP 請求從儲存桶中刪除單個物件或多個物件。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南:刪除 Amazon S3 物件

引數:
  • bucket (str) – 要刪除物件(s)的儲存桶名稱。(模板化的)

  • keys (str | list | None) –

    要從 S3 儲存桶中刪除的鍵。(模板化的)

    keys 是字串時,它應該是要刪除的單個物件的鍵名。

    keys 是列表時,它應該是要刪除的鍵列表。

  • prefix (str | None) – 要刪除的物件的字首。(模板化的) 儲存桶中所有匹配此字首的物件都將被刪除。

  • from_datetime (datetime.datetime | str | None) – 要刪除的物件的“最後修改日期”的起始日期時間。(模板化的) 儲存桶中所有“最後修改日期”晚於此日期時間的物件都將被刪除。

  • to_datetime (datetime.datetime | str | None) – 要刪除的物件的“最後修改日期”的結束日期時間。(模板化的) 儲存桶中所有“最後修改日期”早於此日期時間的物件都將被刪除。

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

template_fields: collections.abc.Sequence[str][source]
aws_hook_class[source]
bucket[source]
keys = None[source]
prefix = None[source]
from_datetime = None[source]
to_datetime = None[source]
execute(context)[source]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

get_openlineage_facets_on_complete(task_instance)[source]

在 execute() 中解析物件鍵,因此實現 _on_complete 方法。

class airflow.providers.amazon.aws.operators.s3.S3FileTransformOperator(*, source_s3_key, dest_s3_key, transform_script=None, select_expression=None, select_expr_serialization_config=None, script_args=None, source_aws_conn_id='aws_default', source_verify=None, dest_aws_conn_id='aws_default', dest_verify=None, replace=False, **kwargs)[source]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

將資料從源 S3 位置複製到本地檔案系統的臨時位置。

根據轉換指令碼對檔案執行轉換,並將輸出上傳到目標 S3 位置。

本地檔案系統中原始檔和目標檔案的位置作為第一個和第二個引數提供給轉換指令碼。轉換指令碼應從源讀取資料,進行轉換,並將輸出寫入本地目標檔案。然後,運算元將接管控制,將本地目標檔案上傳到 S3。

S3 Select 也可用於過濾源內容。如果指定了 S3 Select 表示式,使用者可以省略轉換指令碼。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南:轉換 Amazon S3 物件

引數:
  • source_s3_key (str) – 要從 S3 檢索的鍵。(模板化的)

  • dest_s3_key (str) – 要寫入 S3 的鍵。(模板化的)

  • transform_script (str | None) – 可執行轉換指令碼的位置。

  • select_expression – S3 Select 表示式。

  • select_expr_serialization_config (dict[str, dict[str, dict]] | None) – 包含用於 S3 Select 的輸入和輸出序列化配置的字典。

  • script_args (collections.abc.Sequence[str] | None) – 轉換指令碼的引數。(模板化的)

  • source_aws_conn_id (str | None) – 源 S3 連線。

  • source_verify (bool | str | None) –

    是否驗證 S3 連線的 SSL 證書。預設情況下,SSL 證書會被驗證。您可以提供以下值:

    • False: 不驗證 SSL 證書。SSL 仍將使用(除非 use_ssl 為 False),但不驗證 SSL 證書。

      (除非 use_ssl 為 False),但不驗證 SSL 證書。

    • path/to/cert/bundle.pem: CA 證書捆綁檔案的檔名。

      如果您想使用不同於 botocore 使用的 CA 證書捆綁,可以指定此引數。

    這也適用於 dest_verify

  • dest_aws_conn_id (str | None) – 目標 S3 連線。

  • dest_verify (bool | str | None) – 是否驗證 S3 連線的 SSL 證書。請參閱:source_verify

  • replace (bool) – 如果目標 S3 鍵已存在,則替換它。

template_fields: collections.abc.Sequence[str][source]
template_ext: collections.abc.Sequence[str] = ()[source]
ui_color = '#f9c915'[source]
aws_hook_class[source]
source_s3_key[source]
source_aws_conn_id = 'aws_default'[source]
source_verify = None[source]
dest_s3_key[source]
dest_aws_conn_id = 'aws_default'[source]
dest_verify = None[source]
replace = False[source]
transform_script = None[source]
select_expression = None[source]
select_expr_serialization_config[source]
script_args = [][source]
output_encoding[source]
execute(context)[source]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

get_openlineage_facets_on_start()[source]
class airflow.providers.amazon.aws.operators.s3.S3ListOperator(*, bucket, prefix='', delimiter='', apply_wildcard=False, **kwargs)[source]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

列出儲存桶中名稱帶有給定字串字首的所有物件。

此運算元返回一個包含物件名稱的 Python 列表,下游任務可以使用 xcom 獲取此列表。

另請參閱

有關如何使用此運算元的更多資訊,請參閱指南:列出 Amazon S3 物件

引數:
  • bucket (str) – 要查詢物件的 S3 儲存桶。(模板化的)

  • prefix (str) – 用於過濾名稱以此字首開頭的物件的字首字串。(模板化的)

  • delimiter (str) – 分隔符標記鍵的層次結構。(模板化的)

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

  • apply_wildcard (bool) – 是否將 ‘*’ 視為萬用字元或字首中的普通符號。

示例:

以下運算元將列出 data 儲存桶中 S3 鍵 customers/2018/04/ 下的所有檔案(不包括子資料夾)。

s3_file = S3ListOperator(
    task_id="list_3s_files",
    bucket="data",
    prefix="customers/2018/04/",
    delimiter="/",
    aws_conn_id="aws_customers_conn",
)
template_fields: collections.abc.Sequence[str][source]
ui_color = '#ffd700'[source]
aws_hook_class[source]
bucket[source]
prefix = ''[source]
delimiter = ''[source]
apply_wildcard = False[source]
execute(context)[source]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

class airflow.providers.amazon.aws.operators.s3.S3ListPrefixesOperator(*, bucket, prefix, delimiter, **kwargs)[source]

繼承自: airflow.providers.amazon.aws.operators.base_aws.AwsBaseOperator[airflow.providers.amazon.aws.hooks.s3.S3Hook]

列出儲存桶中名稱帶有給定字串字首的所有子資料夾。

此運算子返回一個 Python 列表,其中包含所有子資料夾的名稱,下游任務可以使用 xcom 來利用此列表。

另請參閱

有關如何使用此運算子的更多資訊,請參閱指南:列出 Amazon S3 字首

引數:
  • bucket (str) – 查詢子資料夾的 S3 儲存桶。(模板化的)

  • prefix (str) – 用於過濾子資料夾名稱以該字首開頭的字串。(模板化的)

  • delimiter (str) – 分隔符標記子資料夾的層次結構。(模板化的)

  • aws_conn_id – 用於 AWS 憑據的 Airflow 連線。如果此項為 None 或為空,則使用 boto3 的預設行為。如果以分散式方式執行 Airflow 且 aws_conn_id 為 None 或為空,則將使用 boto3 的預設配置(並且必須在每個工作節點上維護)。

  • region_name – AWS region_name。如果未指定,則使用 boto3 的預設行為。

  • verify – 是否驗證 SSL 證書。參見: https://boto3.amazonaws.com/v1/documentation/api/latest/reference/core/session.html

  • botocore_config – botocore 客戶端的配置字典(鍵值對)。參見: https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html

示例:

以下運算子將列出 data 儲存桶中 S3 customers/2018/04/ 字首下的所有子資料夾。

s3_file = S3ListPrefixesOperator(
    task_id="list_s3_prefixes",
    bucket="data",
    prefix="customers/2018/04/",
    delimiter="/",
    aws_conn_id="aws_customers_conn",
)
template_fields: collections.abc.Sequence[str][source]
ui_color = '#ffd700'[source]
aws_hook_class[source]
bucket[source]
prefix[source]
delimiter[source]
execute(context)[source]

建立運算元時派生。

上下文與渲染 jinja 模板時使用的字典相同。

有關更多上下文,請參閱 get_template_context。

此條目是否有幫助?