Я пишу функцию Azure, которая использует Microsoft.WindowsAzure.Storage
для проверки состояния регидратирующих больших двоичных объектов при их перемещении из архива в холодное состояние.
Для этого мне нужно проверить поле StandardBlobTier
свойств BLOB-объектов. Я считаю, что это довольно новое свойство в пакете Microsoft.WindowsAzure.Storage
nuget, и поэтому мне нужно настроить таргетинг на последнюю версию.
Я нацелился на версию 9.1.0 в моем project.json, но все равно получаю ошибку: 'BlobProperties' does not contain a definition for 'StandardBlobTier'
. Какая версия Microsoft.WindowsAzure.Storage
автоматически загружается в среду функций Azure и как мне ее переопределить?
Исходный код:
#r "System.IO"
#r "Newtonsoft.Json"
#r "Microsoft.WindowsAzure.Storage"
using System;
using System.Data.SqlClient;
using Newtonsoft.Json;
using Dapper;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;
using Microsoft.WindowsAzure.Storage.Shared.Protocol;
public static async Task Run(TimerInfo myTimer, TraceWriter log)
{
var archiveStorageAccount = CloudStorageAccount.Parse("{storageConnectionString}");
CloudBlobClient blobClient = archiveStorageAccount.CreateCloudBlobClient();
// Retrieve a reference to a container.
CloudBlobContainer container = blobClient.GetContainerReference(containerName);
// Retrieve reference to a blob.
CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
try
{
//Fill blob properties
await blockBlob.FetchAttributesAsync();
if (blockBlob.Properties.StandardBlobTier.HasValue && blockBlob.Properties.StandardBlobTier.Value == StandardBlobTier.Cool)
{
//Blob ready
}
//Blob still rehydrating
}
catch (StorageException ex) { throw; }
}