此模块包含与 Azure Blob 存储的集成。
它通过 Window Azure Storage Blob 协议进行通信。请确保存在类型为 wasb 的 Airflow 连接。可以通过提供登录名(=存储帐户名称)和密码(=密钥)进行授权,或者在额外的字段中提供登录名和 SAS 令牌(有关示例,请参见连接 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 存储进行交互。
这些参数必须在 Airflow 数据库中传递:account_name 和 account_key。
连接的 ‘extra’ 字段中传递的其他选项将传递给 BlockBlockService() 构造函数。例如,通过添加 {“sas_token”: “YOUR_TOKEN”} 使用 SAS 令牌进行身份验证。
如果没有提供身份验证配置,将使用 DefaultAzureCredential(适用于使用 Azure 计算基础结构时)。
- 参数
-
-
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 的名称。
kwargs – BlobClient.get_blob_properties
接受的可选关键字参数。
- 返回
如果 blob 存在,则为 True,否则为 False。
- 返回类型
bool
-
check_for_prefix(container_name, prefix, **kwargs)[source]
检查 Azure Blob 存储上是否存在前缀。
- 参数
-
- 返回
如果存在与前缀匹配的 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 存储。
- 参数
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 存储。
- 参数
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 存储下载文件。
- 参数
file_path (str) – 要下载的文件的路径。
container_name (str) – 容器的名称。
blob_name (str) – blob 的名称。
kwargs – BlobClient.download_blob() 接受的可选关键字参数。
-
read_file(container_name, blob_name, **kwargs)[source]
从 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)[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 存储中删除文件或所有匹配前缀的 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 存储连接。
-
class airflow.providers.microsoft.azure.hooks.wasb.WasbAsyncHook(wasb_conn_id='wasb_default', public_read=False)[source]
基类: WasbHook
一个异步 hook,连接到 Azure WASB 执行操作。
- 参数
-
-
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) – 指定要包含在响应中的一个或多个额外数据集。选项包括: snapshots
、metadata
、uncommittedblobs
、copy`, ``deleted
。
delimiter (str) – 基于分隔符(例如 ‘.csv’)过滤对象。
-
async check_for_prefix_async(container_name, prefix, **kwargs)[source]
检查 Azure Blob 存储上是否存在前缀。
- 参数
-