airflow.providers.google.cloud.transfers.gcs_to_gcs¶
此模組包含一個 Google Cloud Storage operator。
屬性¶
類¶
將物件從一個 bucket 複製到另一個,如果需要,可以重新命名。 |
模組內容¶
- 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)[source]¶
繼承自:
airflow.models.BaseOperator將物件從一個 bucket 複製到另一個,如果需要,可以重新命名。
另請參閱
有關如何使用此 operator 的更多資訊,請參閱指南: GCSToGCSOperator
- 引數:
source_bucket – 源 Google Cloud Storage bucket,物件位於其中。(templated)
source_object – 要複製的 Google Cloud Storage bucket 中物件的源名稱。(templated) 您只能在 bucket 內的物件(檔名)中使用一個萬用字元。萬用字元可以出現在物件名稱內部或末尾。在 bucket 名稱末尾附加萬用字元不受支援。
source_objects – 要複製的 Google Cloud Storage bucket 中物件的源名稱列表。(templated)
destination_bucket – 物件應存放的目標 Google Cloud Storage bucket。如果 destination_bucket 為 None,則預設為 source_bucket。(templated)
destination_object – 目標 Google Cloud Storage bucket 中物件的目標名稱。(templated) 如果 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 將被用於請求。如果設定為字串,則該帳號必須向原始帳號授予 Service Account Token Creator IAM 角色。如果設定為序列,列表中的身份必須向直接前置的身份授予 Service Account Token Creator IAM 角色,列表中的第一個帳號將此角色授予原始帳號 (templated)。
source_object_required – 當源物件不存在時是否引發異常。當源物件是資料夾或模式時,此引數無效。
exact_match – 指定時,只複製源物件(檔名)的完全匹配項。
match_glob (str | None) – (可選) 根據給定的 glob 模式字串過濾物件 ( 例如,
'**/*/.json')
- 示例:
以下 Operator 會將
databucket 中名為sales/sales-2017/january.avro的單個檔案複製到data_backupbucket 中名為copied_sales/2017/january-backup.avro的檔案。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, )
以下 Operator 會將
databucket 中sales/sales-2017資料夾(即名稱以此字首開頭的所有檔案)中的所有 Avro 檔案複製到data_backupbucket 中的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 )
以下 Operator 會將
databucket 中sales/sales-2017資料夾(即名稱以此字首開頭的所有檔案)中的所有 Avro 檔案移動到data_backupbucket 中的相同資料夾,並在過程中刪除原始檔案。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, )
- 以下 Operator 會將
databucket 中sales/sales-2019 和
sales/sales-2020資料夾中的所有 Avro 檔案移動到data_backupbucket 中的相同資料夾,並在過程中刪除原始檔案。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',...[source]¶