airflow.providers.amazon.aws.operators.s3¶
此模組包含 AWS S3 運算元。
屬性¶
類¶
此運算元建立一個 S3 儲存桶。 |
|
此運算元刪除一個 S3 儲存桶。 |
|
此運算元獲取 S3 儲存桶的標籤。 |
|
此運算元為 S3 儲存桶設定標籤。 |
|
此運算元刪除 S3 儲存桶的標籤。 |
|
建立一個已儲存在 S3 中的物件的副本。 |
|
從字串或位元組型別的 data 建立一個新物件。 |
|
使用單個 HTTP 請求從儲存桶中刪除單個物件或多個物件。 |
|
將資料從源 S3 位置複製到本地檔案系統的臨時位置。 |
|
列出儲存桶中名稱帶有給定字串字首的所有物件。 |
|
列出儲存桶中名稱帶有給定字串字首的所有子資料夾。 |
模組內容¶
- 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 儲存桶
- 引數:
bucket_name (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
- template_fields: collections.abc.Sequence[str][原始碼]¶
- 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 儲存桶
- 引數:
bucket_name (str) – 這是您要刪除的儲存桶名稱
force_delete (bool) – 在刪除儲存桶之前強制刪除儲存桶中的所有物件
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][原始碼]¶
- 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 儲存桶的標籤
- 引數:
bucket_name (str) – 這是您要引用的儲存桶名稱
aws_conn_id (str | None) – 用於 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][原始碼]¶
- 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][原始碼]¶
- 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 儲存桶的標籤
- 引數:
bucket_name (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
- template_fields: collections.abc.Sequence[str][原始碼]¶
- 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][原始碼]¶
- 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。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]¶
- 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)的儲存桶名稱。(模板化的)
要從 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]¶
- 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]¶
- 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]¶
- 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儲存桶中 S3customers/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]¶