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[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 存储进行交互。

这些参数必须在 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'[source]
default_conn_name = 'wasb_default'[source]
conn_type = 'wasb'[source]
hook_name = 'Azure Blob 存储'[source]
classmethod get_connection_form_widgets()[source]

返回要添加到连接表单的连接小部件。

classmethod get_ui_field_behaviour()[source]

返回自定义字段行为。

blob_service_client()[source]

返回 BlobServiceClient 对象(已缓存)。

get_conn()[source]

返回 BlobServiceClient 对象。

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

检查 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)[source]

检查 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)[source]

列出给定容器中的 blob。

参数
  • container_name (str) – 容器的名称

  • prefix (str | None) – 过滤结果,仅返回名称以指定前缀开头的 blob。

  • include (list[str] | None) – 指定要在响应中包含的一个或多个额外数据集。选项包括:snapshotsmetadatauncommittedblobscopydeleted

  • 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) – 指定要在响应中包含的一个或多个额外数据集。选项包括:snapshotsmetadatauncommittedblobscopydeleted

  • delimiter – 基于分隔符(例如 ‘.csv’)过滤对象。

load_file(file_path, container_name, blob_name, create_container=False, **kwargs)[source]

将文件上传到 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)[source]

将字符串上传到 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)[source]

从 Azure Blob 存储下载文件。

参数
  • file_path (str) – 要下载的文件的路径。

  • container_name (str) – 容器的名称。

  • blob_name (str) – blob 的名称。

  • kwargsBlobClient.download_blob() 接受的可选关键字参数。

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

从 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)[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 的名称(str)或 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 存储中删除文件或所有匹配前缀的 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 存储连接。

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

基类: WasbHook

一个异步 hook,连接到 Azure WASB 执行操作。

参数
  • wasb_conn_id (str) – 引用 wasb 连接

  • public_read (bool) – 是否应使用匿名公共读取访问。默认为 False

async get_async_conn()[source]

返回异步 BlobServiceClient 对象。

async check_for_blob_async(container_name, blob_name, **kwargs)[source]

检查 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)[source]

列出给定容器中的 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 的可选关键字参数

此条目是否有帮助?