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。

此条目是否有帮助?