此模組包含與 Azure Blob 儲存體的整合。
它透過 Window Azure Storage Blob 協定進行通訊。請確保存在類型為 wasb 的 Airflow 連線。授權可以透過提供登入名稱 (=儲存體帳戶名稱) 和密碼 (=金鑰),或在額外欄位中提供登入名稱和 SAS 權杖來完成 (請參閱連線 wasb_default 以取得範例)。
模組內容
屬性
-
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 計算基礎結構時)。
- 參數
-
-
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 名稱。
kwargs – BlobClient.get_blob_properties
接受的選用關鍵字引數。
- 返回
如果 Blob 存在則為 True,否則為 False。
- 返回類型
bool
-
check_for_prefix(container_name, prefix, **kwargs)[原始碼]
檢查 Azure Blob 儲存體上是否存在前綴。
- 參數
-
- 返回
如果存在與前綴相符的 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) – 指定要包含在回應中的一個或多個額外資料集。選項包括:snapshots
、metadata
、uncommittedblobs
、copy`、 ``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) – 指定要包含在回應中的一個或多個額外資料集。選項包括:snapshots
、metadata
、uncommittedblobs
、copy`、 ``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。
kwargs – BlobClient.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。
kwargs – BlobClient.upload()
接受的選用關鍵字引數。
-
get_file(file_path, container_name, blob_name, **kwargs)[原始碼]
從 Azure Blob 儲存體下載檔案。
- 參數
file_path (str) – 要下載的檔案路徑。
container_name (str) – 容器名稱。
blob_name (str) – Blob 名稱。
kwargs – BlobClient.download_blob() 接受的選用關鍵字引數。
-
read_file(container_name, blob_name, **kwargs)[原始碼]
從 Azure Blob 儲存體讀取檔案並以字串形式傳回。
- 參數
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)[原始碼]
從資料來源建立新的 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)[原始碼]
將 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 或快照。
- 參數
-
-
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 不存在也傳回成功。
kwargs – ContainerClient.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 以執行操作。
- 參數
-
-
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) – 指定要包含在回應中的一個或多個額外資料集。選項包括:snapshots
、metadata
、uncommittedblobs
、copy`, ``deleted
。
delimiter (str) – 根據分隔符號篩選物件 (例如 '.csv')
-
async check_for_prefix_async(container_name, prefix, **kwargs)[source]
檢查 Azure Blob 儲存體上是否存在前綴。
- 參數
-