问题描述
我有一个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。