Мне нужно получить свойства 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>
Это последнее изменение в свойствах, которые мне нужно получить, и не может.
Попробуйте этот код: (примечание: не поддерживается/работает на 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-объектов.