AzureBlobStorage连接器-CreateFile / DeleteFile-ID,与.NET的Azure存储Blobs客户端库的关系

问题描述

我有一个AzureBlobStorage Connector(连接器)使用的powerapp。但是,此应用必须与使用Azure Storage Blobs client library for .NET(API)批量上传的数据进行交互。

使用连接器创建Blob时,您将获得和ID,然后可使用该ID删除Blob。

但是,当使用 api 创建blob时,我看不到如何获取该ID(您只是使用文件名blobid)。因此,无法在Power App中删除正在批量创建的数据。

连接器调用BlobMetadata时返回一个CreateFile对象。

API 调用BlobContentInfo时返回一个UploadBlob。此元数据对象不包含ID或与BlobMetadata.ID格式匹配的任何内容

有人知道我如何从 API 获取此ID?

解决方法

您可以从BlobProperties.Metadata获取Blob元数据。这是document关于使用.Net设置和检索元数据的信息。

// Get a reference to a container named "sample-container" and then create it
BlobContainerClient container = new BlobContainerClient(connectionString,containerName);

// Get a reference to a blob named "sample-file" in a container named "sample-container"
BlobClient blob = container.GetBlobClient(blobName);
await ReadBlobMetadataAsync(blob);

// Retrieve metadata
public static async Task ReadBlobMetadataAsync(BlobClient blob)
{
    try
    {
        // Get the blob's properties and metadata.
        BlobProperties properties = await blob.GetPropertiesAsync();

        Console.WriteLine(properties.BlobType);
        Console.WriteLine("Blob metadata:");
        

        // Enumerate the blob's metadata.
        foreach (var metadataItem in properties.Metadata)
        {
            Console.WriteLine($"\tKey: {metadataItem.Key}");
            Console.WriteLine($"\tValue: {metadataItem.Value}");
        }
    }
    catch (RequestFailedException e)
    {
        Console.WriteLine($"HTTP error code {e.Status}: {e.ErrorCode}");
        Console.WriteLine(e.Message);
        Console.ReadLine();
    }
}

您还可以使用Azure-CLI获取元数据,请参见here