airflow.providers.microsoft.azure.hooks.wasb

此模組包含與 Azure Blob 儲存體的整合。

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

模組內容

類別

WasbHook

透過 wasb:// 協定與 Azure Blob 儲存體互動。

WasbAsyncHook

一個非同步 Hook,連接到 Azure WASB 以執行操作。

屬性

AsyncCredentials

airflow.providers.microsoft.azure.hooks.wasb.AsyncCredentials[原始碼]
class airflow.providers.microsoft.azure.hooks.wasb.WasbHook(wasb_conn_id=default_conn_name, public_read=False)[原始碼]

基底類別: airflow.hooks.base.BaseHook

透過 wasb:// 協定與 Azure Blob 儲存體互動。

這些參數必須在 Airflow 資料庫中傳遞:account_name 和 account_key。

在連線的 'extra' 欄位中傳遞的其他選項將會傳遞給 BlockBlockService() 建構函式。例如,透過新增 {“sas_token”: “YOUR_TOKEN”} 使用 SAS 權杖進行驗證。

如果未提供任何驗證組態,則將使用 DefaultAzureCredential (適用於使用 Azure 計算基礎結構時)。

參數
  • wasb_conn_id (str) – 參考 wasb 連線

  • public_read (bool) – 是否應使用匿名公開讀取權限。預設值為 False

conn_name_attr = 'wasb_conn_id'[原始碼]
default_conn_name = 'wasb_default'[原始碼]
conn_type = 'wasb'[原始碼]
hook_name = 'Azure Blob Storage'[原始碼]
classmethod get_connection_form_widgets()[原始碼]

傳回要新增到連線表單的連線 Widget。

classmethod get_ui_field_behaviour()[原始碼]

傳回自訂欄位行為。

blob_service_client()[原始碼]

傳回 BlobServiceClient 物件 (已快取)。

get_conn()[原始碼]

傳回 BlobServiceClient 物件。

check_for_blob(container_name, blob_name, **kwargs)[原始碼]

檢查 Azure Blob 儲存體上是否存在 Blob。

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

  • blob_name (str) – Blob 名稱。

  • kwargsBlobClient.get_blob_properties 接受的選用關鍵字引數。

返回

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

返回類型

bool

check_for_prefix(container_name, prefix, **kwargs)[原始碼]

檢查 Azure Blob 儲存體上是否存在前綴。

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

  • prefix (str) – Blob 的前綴。

  • kwargsContainerClient.walk_blobs 接受的選用關鍵字引數

返回

如果存在與前綴相符的 Blob 則為 True,否則為 False。

返回類型

bool

get_blobs_list(container_name, prefix=None, include=None, delimiter='/', **kwargs)[原始碼]

列出指定容器中的 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)[原始碼]

列出指定容器中的 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)[原始碼]

上傳檔案到 Azure Blob 儲存體。

參數
  • 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)[原始碼]

上傳字串到 Azure Blob 儲存體。

參數
  • 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)[原始碼]

從 Azure Blob 儲存體下載檔案。

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

  • container_name (str) – 容器名稱。

  • blob_name (str) – Blob 名稱。

  • kwargsBlobClient.download_blob() 接受的選用關鍵字引數。

read_file(container_name, blob_name, **kwargs)[原始碼]

從 Azure Blob 儲存體讀取檔案並以字串形式傳回。

參數
  • 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)[原始碼]

從資料來源建立新的 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)[原始碼]

將 Blob 下載到 StorageStreamDownloader。

參數
  • container_name – 包含 Blob 的容器名稱

  • blob_name – 要下載的 Blob 名稱

  • offset (int | None) – 用於下載 Blob 區段的位元組範圍起點。如果提供 length,則必須設定此值。

  • length (int | None) – 要從串流讀取的位元組數。

create_container(container_name)[原始碼]

如果容器物件尚不存在,則建立容器物件。

參數

container_name (str) – 要建立的容器名稱

delete_container(container_name)[原始碼]

刪除容器物件。

參數

container_name (str) – 容器的名稱

delete_blobs(container_name, *blobs, **kwargs)[原始碼]

標記要刪除的指定 Blob 或快照。

參數
  • container_name (str) – 包含 Blob 的容器名稱

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

copy_blobs(source_container_name, source_blob_name, destination_container_name, destination_blob_name)[原始碼]

將指定的 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)[原始碼]

從 Azure Blob 儲存體刪除檔案,或刪除所有與前綴相符的 Blob。

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

  • blob_name (str) – Blob 名稱。

  • is_prefix (bool) – 如果 blob_name 是前綴,則刪除所有相符的檔案

  • ignore_if_missing (bool) – 如果為 True,即使 Blob 不存在也傳回成功。

  • kwargsContainerClient.delete_blobs() 接受的選用關鍵字引數。

test_connection()[原始碼]

測試 Azure Blob 儲存體連線。

class airflow.providers.microsoft.azure.hooks.wasb.WasbAsyncHook(wasb_conn_id='wasb_default', public_read=False)[原始碼]

基底類別: WasbHook

一個非同步 Hook,連接到 Azure WASB 以執行操作。

參數
  • wasb_conn_id (str) – 參考 wasb 連線

  • public_read (bool) – 是否應使用匿名公開讀取權限。預設值為 False

async get_async_conn()[原始碼]

傳回 Async BlobServiceClient 物件。

async check_for_blob_async(container_name, blob_name, **kwargs)[原始碼]

檢查 Azure Blob 儲存體上是否存在 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)[原始碼]

列出指定容器中的 Blob。

參數
  • container_name (str) – 容器的名稱

  • prefix (str | None) – 篩選結果,僅傳回名稱以指定前綴開頭的 Blob。

  • include (list[str] | None) – 指定要包含在回應中的一個或多個額外資料集。選項包括:snapshotsmetadatauncommittedblobscopy`, ``deleted

  • delimiter (str) – 根據分隔符號篩選物件 (例如 '.csv')

async check_for_prefix_async(container_name, prefix, **kwargs)[source]

檢查 Azure Blob 儲存體上是否存在前綴。

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

  • prefix (str) – Blob 的前綴。

  • kwargs (Any) – ContainerClient.walk_blobs 的選用性關鍵字參數

此條目是否有幫助?