airflow.providers.microsoft.azure.hooks.wasb
此模块包含与 Azure Blob Storage 的集成。
它通过 Window Azure 存储 Blob 协议进行通信。请确保存在类型为 wasb 的 Airflow 连接。授权可以通过提供登录名(=存储帐户名称)和密码(=密钥),或在 extra(额外)字段中提供登录名和 SAS token 来完成(有关示例,请参阅连接 wasb_default)。
模块内容
-
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 计算基础设施时适用)。
- 参数:
-
-
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 名称。
kwargs – BlobClient.get_blob_properties
可选的关键字参数。
- 返回:
如果 blob 存在则为 True,否则为 False。
- 返回类型:
bool
-
check_for_prefix(container_name, prefix, **kwargs)[source]
检查 Azure Blob Storage 上是否存在前缀。
- 参数:
-
- 返回:
如果存在与前缀匹配的 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) – 指定响应中包含一个或多个附加数据集。选项包括:snapshots
、metadata
、uncommittedblobs
、copy`、``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) – 指定响应中包含一个或多个附加数据集。选项包括:snapshots
、metadata
、uncommittedblobs
、copy`、``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。
kwargs – BlobClient.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。
kwargs – BlobClient.upload()
可选的关键字参数。
-
get_file(file_path, container_name, blob_name, **kwargs)[source]
从 Azure Blob Storage 下载文件。
- 参数:
file_path (str) – 要下载的文件的路径。
container_name (str) – 容器名称。
blob_name (str) – blob 名称。
kwargs – BlobClient.download_blob() 可选的关键字参数。
-
read_file(container_name, blob_name, **kwargs)[source]
从 Azure Blob Storage 读取文件并作为字符串返回。
- 参数:
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)[source]
从数据源创建新的 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)[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 或快照以供删除。
- 参数:
-
-
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 不存在也返回成功。
kwargs – ContainerClient.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。
- 参数:
-
-
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 上是否存在前缀。
- 参数:
-