airflow.providers.google.cloud.transfers.gcs_to_gcs
¶
此模块包含一个 Google Cloud Storage 运算符。
模块内容¶
类¶
将对象从一个存储桶复制到另一个存储桶,如果需要,可以重命名。 |
属性¶
- class airflow.providers.google.cloud.transfers.gcs_to_gcs.GCSToGCSOperator(*, source_bucket, source_object=None, source_objects=None, destination_bucket=None, destination_object=None, delimiter=None, move_object=False, replace=True, gcp_conn_id='google_cloud_default', last_modified_time=None, maximum_modified_time=None, is_older_than=None, impersonation_chain=None, source_object_required=False, exact_match=False, match_glob=None, **kwargs)[源代码]¶
基类:
airflow.models.BaseOperator
将对象从一个存储桶复制到另一个存储桶,如果需要,可以重命名。
另请参阅
有关如何使用此运算符的更多信息,请查看以下指南:GCSToGCSOperator
- 参数
source_bucket – 源 Google Cloud Storage 存储桶,对象位于其中。(模板化)
source_object – 要在 Google Cloud Storage 存储桶中复制的对象的源名称。(模板化) 您只能对存储桶中的对象(文件名)使用一个通配符。通配符可以出现在对象名称的内部或对象名称的末尾。不支持将通配符附加到存储桶名称。
source_objects – 要在 Google Cloud Storage 存储桶中复制的对象的源名称列表。(模板化)
destination_bucket – 目标 Google Cloud Storage 存储桶,对象应位于其中。如果 destination_bucket 为 None,则默认为 source_bucket。(模板化)
destination_object – 目标 Google Cloud Storage 存储桶中对象的名称。(模板化) 如果在 source_object 参数中提供了通配符,则这是将添加到最终目标对象路径的前缀。 请注意,源路径中通配符之前的部分将被删除; 如果需要保留它,则应将其附加到 destination_object。 例如,使用前缀
foo/*
和 destination_objectblah/
,文件foo/baz
将被复制到blah/baz
;要保留前缀,请将 destination_object 写为例如blah/foo
,在这种情况下,复制的文件将被命名为blah/foo/baz
。这同样适用于 source_objects 中的源对象。move_object – 当 move object 为 True 时,对象将被移动而不是复制到新位置。 这等效于 mv 命令,而不是 cp 命令。
replace – 是否要替换现有的目标文件。
delimiter – (已弃用) 用于将结果限制为给定“文件夹”中的“文件”。如果 source_objects = [‘foo/bah/’] 且 delimiter = ‘.avro’,则只有文件夹 ‘foo/bah/’ 中带有 ‘.avro’ 分隔符的 “文件” 将被复制到目标对象。
gcp_conn_id – (可选) 用于连接到 Google Cloud 的连接 ID。
last_modified_time – 如果指定,则仅当对象在 last_modified_time 之后修改时才会被复制或移动。如果未设置 tzinfo,则假定为 UTC。
maximum_modified_time – 如果指定,则仅当对象在 maximum_modified_time 之前修改时才会被复制或移动。如果未设置 tzinfo,则假定为 UTC。
is_older_than – 如果指定,则如果对象早于指定的秒数,则会被复制。
impersonation_chain (str | collections.abc.Sequence[str] | None) – 可选的服务帐户,用于使用短期凭据模拟,或获取列表中最后一个帐户的 access_token 所需的链接帐户列表,该帐户将在请求中被模拟。如果设置为字符串,则该帐户必须授予原始帐户服务帐户令牌创建者 IAM 角色。如果设置为序列,则列表中的标识必须授予直接在前标识服务帐户令牌创建者 IAM 角色,列表中的第一个帐户将此角色授予原始帐户(模板化)。
source_object_required – 是否要在源对象不存在时引发异常。当源对象是文件夹或模式时,它没有任何效果。
exact_match – 如果指定,则只会复制源对象(文件名)的完全匹配项。
match_glob (str | None) – (可选) 根据字符串给定的 glob 模式过滤对象(例如,
'**/*/.json'
)
- 示例
以下运算符会将名为
sales/sales-2017/january.avro
的单个文件从data
存储桶复制到名为copied_sales/2017/january-backup.avro
的文件,该文件位于data_backup
存储桶中copy_single_file = GCSToGCSOperator( task_id="copy_single_file", source_bucket="data", source_objects=["sales/sales-2017/january.avro"], destination_bucket="data_backup", destination_object="copied_sales/2017/january-backup.avro", exact_match=True, gcp_conn_id=google_cloud_conn_id, )
以下运算符会将
data
存储桶中sales/sales-2017
文件夹中的所有 Avro 文件(即,所有名称以该前缀开头的文件)复制到data_backup
存储桶中的copied_sales/2017
文件夹。copy_files = GCSToGCSOperator( task_id='copy_files', source_bucket='data', source_objects=['sales/sales-2017'], destination_bucket='data_backup', destination_object='copied_sales/2017/', match_glob='**/*.avro' gcp_conn_id=google_cloud_conn_id ) Or :: copy_files = GCSToGCSOperator( task_id='copy_files', source_bucket='data', source_object='sales/sales-2017/*.avro', destination_bucket='data_backup', destination_object='copied_sales/2017/', gcp_conn_id=google_cloud_conn_id )
以下运算符会将
data
存储桶中sales/sales-2017
文件夹中的所有 Avro 文件(即,所有名称以该前缀开头的文件)移动到data_backup
存储桶中的同一文件夹,并在过程中删除原始文件。move_files = GCSToGCSOperator( task_id="move_files", source_bucket="data", source_object="sales/sales-2017/*.avro", destination_bucket="data_backup", move_object=True, gcp_conn_id=google_cloud_conn_id, )
- 以下运算符会将
sales/sales-2019
中的所有 Avro 文件移动 和
data
存储桶中sales/sales-2020
文件夹移动到data_backup
存储桶中的同一文件夹,并在过程中删除原始文件。move_files = GCSToGCSOperator( task_id="move_files", source_bucket="data", source_objects=["sales/sales-2019/*.avro", "sales/sales-2020"], destination_bucket="data_backup", delimiter=".avro", move_object=True, gcp_conn_id=google_cloud_conn_id, )
- template_fields: collections.abc.Sequence[str] = ('source_bucket', 'source_object', 'source_objects', 'destination_bucket', 'destination_object',...[源代码]¶