доступ к свойствам BLOB-объектов для атрибута LastModified - PullRequest
0 голосов
/ 11 февраля 2019

Я пишу небольшой код для проверки свойства LastModified в BLOB-объекте.Кажется, свойства BLOB-объектов недоступны.Как мне этого добиться?

Примечание. При отладке в Visual Studio я вижу нужную мне информацию.

Ниже приведен фрагмент, где я пытаюсь сохранить информацию о BLOB-объектах для последующего сравнения

  if (blob is CloudBlockBlob)
                {
                    var blobFileName = blob.Uri.Segments.Last().Replace("%20", " ");
                    var blobFilePath = blob.Uri.AbsolutePath.Replace(blob.Container.Uri.AbsolutePath + "/", "").Replace("%20", " ");
                    var blobPath = blobFilePath.Replace("/" + blobFileName, "");
                    var blobLM = blob.Properties.LastModified; // this is where I cannot access the LastModified poperty
                    blobInfos.Add(new BlobFileInfo
                    {
                        FileName = blobFileName,
                        BlobPath = blobPath,
                        BlobFilePath = blobFilePath,
                        Blob = blob,
                        LastModified = blobLM
                    });
                }

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Пожалуйста, приведите blob как CloudBlockBlob, и это должно решить вашу проблему.

Например:

if (blob is CloudBlockBlob)
{
    var cloudBlockBlob = (CloudBlockBlob) blob;
    var blobFileName = cloudBlockBlob.Uri.Segments.Last().Replace("%20", " ");
    var blobFilePath = cloudBlockBlob.Uri.AbsolutePath.Replace(cloudBlockBlob.Container.Uri.AbsolutePath + "/", "").Replace("%20", " ");
    var blobPath = blobFilePath.Replace("/" + blobFileName, "");
    var blobLM = cloudBlockBlob.Properties.LastModified; // this is where I cannot access the LastModified poperty
    blobInfos.Add(new BlobFileInfo
    {
        FileName = blobFileName,
        BlobPath = blobPath,
        BlobFilePath = blobFilePath,
        Blob = cloudBlockBlob,
        LastModified = blobLM
    });
}
0 голосов
/ 11 февраля 2019

Метаданные и свойства не загружаются по умолчанию, см. Документы :

Получение значений свойств и метаданных для ресурса хранения является двухэтапным процессом.Прежде чем вы сможете прочитать эти значения, вы должны явно извлечь их, вызвав метод FetchAttributes или FetchAttributesAsync.Исключение составляют случаи, когда вы вызываете метод Exists или ExistsAsync для ресурса.Когда вы вызываете один из этих методов, хранилище Azure вызывает соответствующий метод FetchAttributes под обложками как часть вызова метода Exists.

Итак, выполните вызов, подобный await blob.FetchAttributesAsync(); (или любой из перегружает ) перед доступом к свойствам.

Существует также не асинхронный FetchAttributes , если необходимо.

...