airflow.providers.microsoft.azure.hooks.wasb
此模組包含與 Azure Blob Storage 的整合。
它透過 Window Azure 儲存 Blob 協議進行通訊。請確保存在型別為 wasb 的 Airflow 連線。授權可以透過提供登入名(=儲存帳戶名稱)和密碼(=金鑰),或在 extra(額外)欄位中提供登入名和 SAS token 來完成(有關示例,請參閱連線 wasb_default)。
模組內容
-
airflow.providers.microsoft.azure.hooks.wasb.AsyncCredentials[source]
-
class airflow.providers.microsoft.azure.hooks.wasb.WasbHook(wasb_conn_id=default_conn_name, public_read=False)[source]
基類: airflow.hooks.base.BaseHook
透過 wasb:// 協議與 Azure Blob Storage 互動。
這些引數必須在 Airflow 資料庫中傳遞:帳戶名稱和帳戶金鑰。
在連線的 ‘extra’ 欄位中傳遞的附加選項將傳遞給 BlockBlockService() 建構函式。例如,透過新增 {“sas_token”: “YOUR_TOKEN”},使用 SAS token 進行身份驗證。
如果未提供身份驗證配置,將使用 DefaultAzureCredential(在使用 Azure 計算基礎設施時適用)。
- 引數:
-
-
conn_name_attr = 'wasb_conn_id'[source]
-
default_conn_name = 'wasb_default'[source]
-
conn_type = 'wasb'[source]
-
hook_name = 'Azure Blob Storage'[source]
-
classmethod get_connection_form_widgets()[source]
返回新增到連線表單的連線小部件。
-
classmethod get_ui_field_behaviour()[source]
返回自定義欄位行為。
-
conn_id = 'wasb_default'[source]
-
public_read = False[source]
-
property blob_service_client: azure.storage.blob.BlobServiceClient[source]
返回 BlobServiceClient 物件(快取的)。
-
get_conn()[source]
返回 BlobServiceClient 物件。
-
check_for_blob(container_name, blob_name, **kwargs)[source]
檢查 Azure Blob Storage 上是否存在 blob。
- 引數:
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
kwargs – BlobClient.get_blob_properties 可選的關鍵字引數。
- 返回:
如果 blob 存在則為 True,否則為 False。
- 返回型別:
bool
-
check_for_prefix(container_name, prefix, **kwargs)[source]
檢查 Azure Blob Storage 上是否存在字首。
- 引數:
-
- 返回:
如果存在與字首匹配的 blob 則為 True,否則為 False。
- 返回型別:
bool
-
get_blobs_list(container_name, prefix=None, include=None, delimiter='/', **kwargs)[source]
列出給定容器中的 blob。
- 引數:
container_name (str) – 容器的名稱
prefix (str | None) – 過濾結果,僅返回名稱以指定字首開頭的 blob。
include (list[str] | None) – 指定響應中包含一個或多個附加資料集。選項包括:snapshots、metadata、uncommittedblobs、copy`、``deleted。
delimiter (str) – 根據分隔符過濾物件(例如 ‘.csv’)
-
get_blobs_list_recursive(container_name, prefix=None, include=None, endswith='', **kwargs)[source]
列出給定容器中的 blob。
- 引數:
container_name (str) – 容器的名稱
prefix (str | None) – 過濾結果,僅返回名稱以指定字首開頭的 blob。
include (list[str] | None) – 指定響應中包含一個或多個附加資料集。選項包括:snapshots、metadata、uncommittedblobs、copy`、``deleted。
delimiter – 根據分隔符過濾物件(例如 ‘.csv’)
-
load_file(file_path, container_name, blob_name, create_container=False, **kwargs)[source]
上傳檔案到 Azure Blob Storage。
- 引數:
file_path (str) – 要載入的檔案的路徑。
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
create_container (bool) – 在上傳 blob 之前嘗試建立目標容器。如果目標容器可能尚不存在,這會很有用。預設為 False。
kwargs – BlobClient.upload_blob() 可選的關鍵字引數。
-
load_string(string_data, container_name, blob_name, create_container=False, **kwargs)[source]
上傳字串到 Azure Blob Storage。
- 引數:
string_data (str) – 要載入的字串。
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
create_container (bool) – 在上傳 blob 之前嘗試建立目標容器。如果目標容器可能尚不存在,這會很有用。預設為 False。
kwargs – BlobClient.upload() 可選的關鍵字引數。
-
get_file(file_path, container_name, blob_name, **kwargs)[source]
從 Azure Blob Storage 下載檔案。
- 引數:
file_path (str) – 要下載的檔案的路徑。
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
kwargs – BlobClient.download_blob() 可選的關鍵字引數。
-
read_file(container_name, blob_name, **kwargs)[source]
從 Azure Blob Storage 讀取檔案並作為字串返回。
- 引數:
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
kwargs – BlobClient.download_blob 可選的關鍵字引數。
-
upload(container_name, blob_name, data, blob_type='BlockBlob', length=None, create_container=False, **kwargs)[source]
從資料來源建立新的 blob 並自動分塊。
- 引數:
container_name (str) – 上傳資料的容器名稱
blob_name (str) – 要上傳的 blob 名稱。此名稱不必在容器中存在
data (Any) – 要上傳的 blob 資料
blob_type (str) – blob 的型別。可以是 BlockBlob、PageBlob 或 AppendBlob。預設值為 BlockBlob。
length (int | None) – 從流中讀取的位元組數。這是可選的,但為了獲得最佳效能應提供。
create_container (bool) – 在上傳 blob 之前嘗試建立目標容器。如果目標容器可能尚不存在,這會很有用。預設為 False。
-
download(container_name, blob_name, offset=None, length=None, **kwargs)[source]
下載 blob 到 StorageStreamDownloader。
- 引數:
container_name – 包含 blob 的容器名稱
blob_name – 要下載的 blob 名稱
offset (int | None) – 用於下載 blob 部分內容的位元組範圍的起始位置。如果提供了 length,則必須設定此引數。
length (int | None) – 從流中讀取的位元組數。
-
create_container(container_name)[source]
如果容器物件尚不存在,則建立它。
- 引數:
container_name (str) – 要建立的容器名稱
-
delete_container(container_name)[source]
刪除容器物件。
- 引數:
container_name (str) – 容器的名稱
-
delete_blobs(container_name, *blobs, **kwargs)[source]
標記指定的 blob 或快照以供刪除。
- 引數:
-
-
copy_blobs(source_container_name, source_blob_name, destination_container_name, destination_blob_name)[source]
將指定的 blob 從一個 blob 字首複製到另一個。
- 引數:
source_container_name (str) – 包含 blob 的源容器名稱。
source_blob_name (str) – 完整的源 blob 路徑,不包含容器名稱。
destination_container_name (str) – 將複製 blob 到的目標容器名稱。
destination_blob_name (str) – 完整的目標 blob 路徑,不包含容器名稱。
-
delete_file(container_name, blob_name, is_prefix=False, ignore_if_missing=False, delimiter='', **kwargs)[source]
從 Azure Blob Storage 刪除檔案或所有匹配字首的 blob。
- 引數:
container_name (str) – 容器名稱。
blob_name (str) – blob 名稱。
is_prefix (bool) – 如果 blob_name 是字首,則刪除所有匹配的檔案
ignore_if_missing (bool) – 如果為 True,則即使 blob 不存在也返回成功。
kwargs – ContainerClient.delete_blobs() 可選的關鍵字引數。
-
test_connection()[source]
測試 Azure Blob Storage 連線。
-
class airflow.providers.microsoft.azure.hooks.wasb.WasbAsyncHook(wasb_conn_id='wasb_default', public_read=False)[source]
基類: WasbHook
一個連線到 Azure WASB 並執行操作的非同步 hook。
- 引數:
-
-
conn_id = 'wasb_default'[source]
-
public_read = False[source]
-
blob_service_client: azure.storage.blob.aio.BlobServiceClient = None[source]
返回 BlobServiceClient 物件(快取的)。
-
async get_async_conn()[source]
返回 Async BlobServiceClient 物件。
-
async check_for_blob_async(container_name, blob_name, **kwargs)[source]
檢查 Azure Blob Storage 上是否存在 blob。
- 引數:
container_name (str) – 容器名稱
blob_name (str) – blob 名稱
kwargs (Any) – BlobClient.get_blob_properties 可選的關鍵字引數
-
async get_blobs_list_async(container_name, prefix=None, include=None, delimiter='/', **kwargs)[source]
列出給定容器中的 blob。
- 引數:
container_name (str) – 容器的名稱
prefix (str | None) – 過濾結果,僅返回名稱以指定字首開頭的 blob。
包含 (list[str] | None) – 指定要在響應中包含一個或多個附加資料集。選項包括: snapshots, metadata, uncommittedblobs, copy`, ``deleted。
delimiter (str) – 根據分隔符過濾物件(例如 ‘.csv’)
-
async check_for_prefix_async(container_name, prefix, **kwargs)[source]
檢查 Azure Blob Storage 上是否存在字首。
- 引數:
-