Соединитель AzureBlobStorage — идентификатор файла / удаления файла, связь с клиентской библиотекой больших двоичных объектов хранилища Azure для .NET

#azure-blob-storage #powerapps #azure-sdk

#azure-blob-хранилище #powerapps #azure-sdk

Вопрос:

У меня есть powerapp, использующий соединитель AzureBlobStorage (соединитель) . Однако это приложение должно взаимодействовать с данными, которые загружаются массово с помощью клиентской библиотеки больших двоичных объектов хранилища Azure для .NET (api).

При создании большого двоичного объекта с помощью соединителя вы получаете идентификатор, который затем можно использовать для удаления большого двоичного объекта.

Однако при создании больших двоичных объектов с помощью API я не вижу, как я могу получить этот идентификатор (вы просто используете blobid, который является именем файла). Следовательно, данные, которые создаются массово, не могут быть удалены в приложении Power.

Соединитель возвращает объект BlobMetadata при вызове CreateFile.

API возвращает BlobContentInfo при вызове UploadBlob. Этот объект метаданных не содержит идентификатора или чего-либо, соответствующего формату BlobMetadata.ID .

Кто-нибудь знает, как я могу получить этот идентификатор из API?

Комментарии:

1. У меня ничего не получилось с этим, но я нашел, как получить «Идентификатор» формы PowerApps, используя «container / blobname.ext». Вы можете вызвать GetFileMetadataByPath . Это добавляет еще один веб-вызов, однако он позволяет взаимодействовать между Azure SDK и PowerApps / Flow

Ответ №1:

Вы могли бы получить метаданные больших двоичных объектов из BlobProperties.Metadata . Это документ о настройке и получении метаданных с помощью .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, см. Здесь .

Комментарии:

1. К сожалению, «Id» также отсутствует в BlobProperties или метаданных BlobProperties. Я просто выполнил перечисление значений метаданных и их пустых при использовании SDK для загрузки.

2. @gatapia Возможно, существует два метаданных больших двоичных объектов, один для connector, другой для BlobProperties. Метаданные. Кажется, нет SDK для метаданных соединителя. Вы можете попробовать вызвать приложение logic, чтобы получить метаданные файла, используя path, см. Здесь .