Доступ к свойствам BLOB-объектов в Azure

2

Мне нужно получить свойства blob, в котором есть последняя измененная дата. Мне нужна дата для сравнения. Прочитали ряд статей и подумали, что это потому, что я не использовал CloudBlockBlob, но я не могу извлечь из него свойства.

Мой код до сих пор возвращает имена капли:

public static void ListBlobsAnonymously()
    {
        //Get the blob from the URL - URL is in the app.config file so it can be changed easily should it need it. 
        CloudBlobContainer container = new CloudBlobContainer(new Uri(ConfigurationManager.AppSettings["VOURL"]));

        //For each of the blobs, write the file name out. This will be needed for a comparison. 
        foreach (IListBlobItem blobItem in container.ListBlobs())
        {
            string name = blobItem.Uri.Segments.Last();
            Console.WriteLine(name);
        }

        Console.ReadKey();
    }

Это структура капель:

<EnumerationResults ServiceEndpoint="https://test.blob.core.windows.net/" ContainerName="downloads">
<Blobs>
    <Blob>
        <Name>
        This_is_a_test
        </Name>
        <Properties>
            <Last-Modified>Tue, 01 Oct 2010 14:33:48 GMT</Last-Modified>
            <Content-Length>452</Content-Length>
            <Content-Type>application/zip</Content-Type>
            <BlobType>BlockBlob</BlobType>
        </Properties>
    </Blob>
</Blobs>
</EnumerationResults>

Это последнее изменение в свойствах, которые мне нужно получить, и не может.

  • 0
    Попробуйте blob.Properties.LastModified
  • 0
    С помощью приведенного выше кода я могу получить доступ только к свойствам контейнера, а не к самому BLOB-объекту, что, по-моему, является основной проблемой. Таким образом, я могу получить container.Properties.LastModified, но мне действительно нужен blobItem.Properties.LastModified, но я не могу получить доступ к свойствам ListBlobs.
Показать ещё 6 комментариев
Теги:
azure
azure-storage-blobs

1 ответ

3
Лучший ответ

Попробуйте этот код: (примечание: не поддерживается/работает на NET Core)

        CloudBlobContainer container = new CloudBlobContainer(new Uri(ConfigurationManager.AppSettings["VOURL"]));

        //For each of the blobs, write the file name out. This will be needed for a comparison. 
        foreach (IListBlobItem blobItem in container.ListBlobs())
        {
            var blob = (CloudBlob)blobItem;
            if (blob != null)
            {
                string name = blobItem.Uri.Segments.Last();
                Console.WriteLine(name);
                Console.WriteLine(blob.Properties.LastModified);
            }
        }

        Console.ReadKey();

По сути, вам нужно привести IListBlobItem к CloudBlob и там у вас будет доступ к свойствам BLOB-объектов.

  • 0
    Это то, чего мне не хватало, я прочитал ссылку «Это ловушка», которая вывела меня на этот трек. Спасибо, что нашли время ответить, ценю это.
  • 0
    Рад, что смог помочь. Пожалуйста, обязательно примите ответ, если он решил вашу проблему.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню