azure CloudBlobDirectory.ListBlobs () возвращает «Указанный ресурс не существует», но fetchAttributes () работает с теми же данными

Я получаю исключение «Указанный ресурс не существует», когда я пытаюсь повторить результат ListBlobs () вызов. Я могу получить атрибуты больших двоичных объектов, когда обращаюсь к ним напрямую, но я пытаюсь получить список всех больших двоичных объектов в подкаталоге.

Я написал этот небольшой тест, чтобы точно увидеть, в чем проблема. У меня есть тестовый драйвер и два метода. Первый метод «GetBlockBlobDateTime» работает нормально и возвращает дату и время существующего большого двоичного объекта. Второй метод «GetBlobDirFiles» использует те же входные данные и выдает исключение, когда я пытаюсь выполнить итерацию blobItems в.

foreach (IListBlobItem blobItem in blobItems)

Обратите внимание, что для обоих методов используются одни и те же данные. Что мне не хватает?

    public static void DoTest(string baseURL, string container, string directory, string fileName)
    {
        DateTime t = GetBlockBlobDateTime( baseURL,  container,  directory,  fileName);
        List<string> fileList = GetBlobDirFiles( baseURL,  container,  directory);
    }

    public static DateTime GetBlockBlobDateTime(string baseURL, string container, string directory, string fileName)
    {
        CloudBlobClient blobClient = new CloudBlobClient(baseURL);
        CloudBlobDirectory blobDir = blobClient.GetBlobDirectoryReference(container);
        CloudBlobDirectory subDirectory = blobDir.GetSubdirectory(directory);
        CloudBlockBlob cloudBlockBlob = subDirectory.GetBlockBlobReference(fileName);
        cloudBlockBlob.FetchAttributes();
        DateTime cloudTimeStampUTC = cloudBlockBlob.Properties.LastModifiedUtc;
        return cloudTimeStampUTC;
    }

    public static List<string> GetBlobDirFiles(string baseURL, string container, string directory)
    {
        CloudBlobClient blobClient = new CloudBlobClient(baseURL);
        CloudBlobDirectory blobDir = blobClient.GetBlobDirectoryReference(container);
        CloudBlobDirectory subDirectory = blobDir.GetSubdirectory(directory);
        IEnumerable<IListBlobItem> blobItems = subDirectory.ListBlobs();

        List<string> fileList = new List<string>();
        foreach (IListBlobItem blobItem in blobItems)
        {
            fileList.Add(blobItem.Uri.ToString());
        }
        return fileList;
    }
8
задан David Makogon 26 June 2012 в 00:03
поделиться