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 的可选关键字参数

此条目是否有帮助?