Azure ClubdBlob& #39;s Properties.Length возвращает 0

Следующий код возвращает размер файла большого двоичного объекта 0:

public long GetFileSize(string fileUrl)
{
    var blob = GetBlobContainer().GetBlobReference(fileUrl);
    return blob == null ? 0 : blob.Properties.Length;
}

, почти так же, как он не находит большой двоичный объект. Но если я удаляю блоб, я вижу, что он удаляется. Это работает при удалении :

void DeleteFileFromBlob(string fileUrl, bool deleteSnapshots)
{
    var blob = GetBlobContainer().GetBlobReference(fileUrl);
    if (deleteSnapshots)
    {
        var options = new BlobRequestOptions { DeleteSnapshotsOption = DeleteSnapshotsOption.IncludeSnapshots };
        blob.DeleteIfExists(options);
    }
    else blob.DeleteIfExists();
}

. Это в основном тот же код, что и выше, поэтому кажется, что блоб найден.

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

public long GetStorageUsageByteSize()
{
    var blobClient = GetBlobClient();
    return (from container in blobClient.ListContainers()
                      select
                      (from CloudBlob blob in
                           container.ListBlobs(new BlobRequestOptions { UseFlatBlobListing = true })
                       select blob.Properties.Length
                      ).Sum()
                     ).Sum();            
}

Итак, я не могу понять, почему CloubdBlob ::Properties.Length возвращает 0, когда я использую GetBlobReference с URL-адресом.

5
задан 26 April 2012 в 11:15
поделиться