airflow.providers.microsoft.azure.hooks.wasb

此模組包含與 Azure Blob Storage 的整合。

它透過 Window Azure 儲存 Blob 協議進行通訊。請確保存在型別為 wasb 的 Airflow 連線。授權可以透過提供登入名(=儲存帳戶名稱)和密碼(=金鑰),或在 extra(額外)欄位中提供登入名和 SAS token 來完成(有關示例,請參閱連線 wasb_default)。

屬性

AsyncCredentials

WasbHook

透過 wasb:// 協議與 Azure Blob Storage 互動。

WasbAsyncHook

一個連線到 Azure WASB 並執行操作的非同步 hook。

模組內容

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 計算基礎設施時適用)。

引數:
  • wasb_conn_id (str) – 引用 wasb 連線

  • public_read (bool) – 是否應該使用匿名公共讀取訪問。預設為 False

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 名稱。

  • kwargsBlobClient.get_blob_properties 可選的關鍵字引數。

返回:

如果 blob 存在則為 True,否則為 False。

返回型別:

bool

check_for_prefix(container_name, prefix, **kwargs)[source]

檢查 Azure Blob Storage 上是否存在字首。

引數:
  • container_name (str) – 容器名稱。

  • prefix (str) – blob 的字首。

  • kwargsContainerClient.walk_blobs 可選的關鍵字引數

返回:

如果存在與字首匹配的 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) – 指定響應中包含一個或多個附加資料集。選項包括:snapshotsmetadatauncommittedblobscopy`、``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) – 指定響應中包含一個或多個附加資料集。選項包括:snapshotsmetadatauncommittedblobscopy`、``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。

  • kwargsBlobClient.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。

  • kwargsBlobClient.upload() 可選的關鍵字引數。

get_file(file_path, container_name, blob_name, **kwargs)[source]

從 Azure Blob Storage 下載檔案。

引數:
  • file_path (str) – 要下載的檔案的路徑。

  • container_name (str) – 容器名稱。

  • blob_name (str) – blob 名稱。

  • kwargsBlobClient.download_blob() 可選的關鍵字引數。

read_file(container_name, blob_name, **kwargs)[source]

從 Azure Blob Storage 讀取檔案並作為字串返回。

引數:
  • container_name (str) – 容器名稱。

  • blob_name (str) – blob 名稱。

  • kwargsBlobClient.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 的型別。可以是 BlockBlobPageBlobAppendBlob。預設值為 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 或快照以供刪除。

引數:
  • container_name (str) – 包含 blob 的容器名稱

  • blobs – 要刪除的 blob。這可以是單個 blob,或者可以提供多個值,其中每個值是 blob 的名稱(字串)或 BlobProperties。

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 不存在也返回成功。

  • kwargsContainerClient.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。

引數:
  • wasb_conn_id (str) – 引用 wasb 連線

  • public_read (bool) – 是否應使用匿名公共讀取訪問。預設為 False

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 上是否存在字首。

引數:
  • container_name (str) – 容器名稱。

  • prefix (str) – blob 的字首。

  • kwargs (Any) – ContainerClient.walk_blobs 的可選關鍵字引數

此條目是否有幫助?