Beispiel #1
0
        public void CloudBlobClientListBlobsSegmentedWithPrefix()
        {
            string             name          = "bb" + GetRandomContainerName();
            CloudBlobClient    blobClient    = GenerateCloudBlobClient();
            CloudBlobContainer rootContainer = blobClient.GetRootContainerReference();
            CloudBlobContainer container     = blobClient.GetContainerReference(name);

            try
            {
                rootContainer.CreateIfNotExists();
                container.Create();

                List <string> blobNames     = CreateBlobs(container, 3, BlobType.BlockBlob);
                List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob);

                BlobResultSegment     results;
                BlobContinuationToken token = null;
                do
                {
                    results = blobClient.ListBlobsSegmented("bb", token);
                    token   = results.ContinuationToken;

                    foreach (CloudBlockBlob blob in results.Results)
                    {
                        blob.Delete();
                        rootBlobNames.Remove(blob.Name);
                    }
                }while (token != null);
                Assert.AreEqual(0, rootBlobNames.Count);

                results = blobClient.ListBlobsSegmented("bb", token);
                Assert.AreEqual(0, results.Results.Count());
                Assert.IsNull(results.ContinuationToken);

                results = blobClient.ListBlobsSegmented(name, token);
                Assert.AreEqual(0, results.Results.Count());
                Assert.IsNull(results.ContinuationToken);

                token = null;
                do
                {
                    results = blobClient.ListBlobsSegmented(name + "/", token);
                    token   = results.ContinuationToken;

                    foreach (CloudBlockBlob blob in results.Results)
                    {
                        Assert.IsTrue(blobNames.Remove(blob.Name));
                    }
                }while (token != null);
                Assert.AreEqual(0, blobNames.Count);
            }
            finally
            {
                container.DeleteIfExists();
            }
        }
Beispiel #2
0
        public void CloudBlobClientListBlobsWithPrefix()
        {
            string             name          = "bb" + GetRandomContainerName();
            CloudBlobClient    blobClient    = GenerateCloudBlobClient();
            CloudBlobContainer rootContainer = blobClient.GetRootContainerReference();
            CloudBlobContainer container     = blobClient.GetContainerReference(name);

            try
            {
                rootContainer.CreateIfNotExists();
                container.Create();

                List <string> blobNames     = CreateBlobs(container, 3, BlobType.BlockBlob);
                List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob);

                IEnumerable <IListBlobItem> results = blobClient.ListBlobs("bb");
                foreach (CloudBlockBlob blob in results)
                {
                    blob.Delete();
                    rootBlobNames.Remove(blob.Name);
                }
                Assert.AreEqual(0, rootBlobNames.Count);
                Assert.AreEqual(0, blobClient.ListBlobs("bb").Count());

                Assert.AreEqual(0, blobClient.ListBlobs(name).Count());
                results = blobClient.ListBlobs(name + "/");
                foreach (CloudBlockBlob blob in results)
                {
                    Assert.IsTrue(blobNames.Remove(blob.Name));
                }
                Assert.AreEqual(0, blobNames.Count);
            }
            finally
            {
                container.DeleteIfExists();
            }
        }
        public async Task CloudBlobClientListBlobsSegmentedWithPrefixAsync()
        {
            string name = "bb" + GetRandomContainerName();
            DelegatingHandlerImpl delegatingHandlerImpl = new DelegatingHandlerImpl(new DelegatingHandlerImpl());
            CloudBlobClient       blobClient            = GenerateCloudBlobClient(delegatingHandlerImpl);
            CloudBlobContainer    rootContainer         = blobClient.GetRootContainerReference();
            CloudBlobContainer    container             = blobClient.GetContainerReference(name);

            try
            {
                await rootContainer.CreateIfNotExistsAsync();

                await container.CreateAsync();

                List <string> blobNames = await CreateBlobsAsync(container, 3, BlobType.BlockBlob);

                List <string> rootBlobNames = await CreateBlobsAsync(rootContainer, 2, BlobType.BlockBlob);

                BlobResultSegment     results;
                BlobContinuationToken token = null;
                do
                {
                    results = await blobClient.ListBlobsSegmentedAsync("bb", token);

                    token = results.ContinuationToken;

                    foreach (CloudBlockBlob blob in results.Results)
                    {
                        await blob.DeleteAsync();

                        rootBlobNames.Remove(blob.Name);
                    }
                }while (token != null);
                Assert.AreEqual(0, rootBlobNames.Count);

                results = await blobClient.ListBlobsSegmentedAsync("bb", token);

                Assert.AreEqual(0, results.Results.Count());
                Assert.IsNull(results.ContinuationToken);

                results = await blobClient.ListBlobsSegmentedAsync(name, token);

                Assert.AreEqual(0, results.Results.Count());
                Assert.IsNull(results.ContinuationToken);

                token = null;
                do
                {
                    results = await blobClient.ListBlobsSegmentedAsync(name + "/", token);

                    token = results.ContinuationToken;

                    foreach (CloudBlockBlob blob in results.Results)
                    {
                        Assert.IsTrue(blobNames.Remove(blob.Name));
                    }
                }while (token != null);
                Assert.AreEqual(0, blobNames.Count);
                Assert.AreNotEqual(0, delegatingHandlerImpl.CallCount);
            }
            finally
            {
                container.DeleteIfExistsAsync().Wait();
            }
        }
Beispiel #4
0
        public void CloudBlobClientListBlobsSegmentedWithPrefixAPM()
        {
            string             name          = "bb" + GetRandomContainerName();
            CloudBlobClient    blobClient    = GenerateCloudBlobClient();
            CloudBlobContainer rootContainer = blobClient.GetRootContainerReference();
            CloudBlobContainer container     = blobClient.GetContainerReference(name);

            try
            {
                rootContainer.CreateIfNotExists();
                container.Create();

                List <string> blobNames     = CreateBlobs(container, 3, BlobType.BlockBlob);
                List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob);

                using (AutoResetEvent waitHandle = new AutoResetEvent(false))
                {
                    IAsyncResult          result;
                    BlobResultSegment     results;
                    BlobContinuationToken token = null;
                    do
                    {
                        result = blobClient.BeginListBlobsSegmented("bb", token,
                                                                    ar => waitHandle.Set(),
                                                                    null);
                        waitHandle.WaitOne();
                        results = blobClient.EndListBlobsSegmented(result);
                        token   = results.ContinuationToken;

                        foreach (CloudBlockBlob blob in results.Results)
                        {
                            blob.Delete();
                            rootBlobNames.Remove(blob.Name);
                        }
                    }while (token != null);
                    Assert.AreEqual(0, rootBlobNames.Count);

                    result = blobClient.BeginListBlobsSegmented("bb", token,
                                                                ar => waitHandle.Set(),
                                                                null);
                    waitHandle.WaitOne();
                    results = blobClient.EndListBlobsSegmented(result);
                    Assert.AreEqual(0, results.Results.Count());
                    Assert.IsNull(results.ContinuationToken);

                    result = blobClient.BeginListBlobsSegmented(name, token,
                                                                ar => waitHandle.Set(),
                                                                null);
                    waitHandle.WaitOne();
                    results = blobClient.EndListBlobsSegmented(result);
                    Assert.AreEqual(0, results.Results.Count());
                    Assert.IsNull(results.ContinuationToken);

                    token = null;
                    do
                    {
                        result = blobClient.BeginListBlobsSegmented(name + "/", token,
                                                                    ar => waitHandle.Set(),
                                                                    null);
                        waitHandle.WaitOne();
                        results = blobClient.EndListBlobsSegmented(result);
                        token   = results.ContinuationToken;

                        foreach (CloudBlockBlob blob in results.Results)
                        {
                            Assert.IsTrue(blobNames.Remove(blob.Name));
                        }
                    }while (token != null);
                    Assert.AreEqual(0, blobNames.Count);
                }
            }
            finally
            {
                container.DeleteIfExists();
            }
        }
Beispiel #5
0
        public void CloudBlobClientListBlobsSegmentedWithEmptyPrefix()
        {
            string             name          = "bb" + GetRandomContainerName();
            CloudBlobClient    blobClient    = GenerateCloudBlobClient();
            CloudBlobContainer rootContainer = blobClient.GetRootContainerReference();
            CloudBlobContainer container     = blobClient.GetContainerReference(name);

            try
            {
                rootContainer.CreateIfNotExists();
                container.Create();
                List <Uri> preExistingBlobs = rootContainer.ListBlobs().Select(b => b.Uri).ToList();

                List <string> blobNames     = CreateBlobs(container, 3, BlobType.BlockBlob);
                List <string> rootBlobNames = CreateBlobs(rootContainer, 2, BlobType.BlockBlob);

                BlobResultSegment     results;
                BlobContinuationToken token       = null;
                List <Uri>            listedBlobs = new List <Uri>();
                do
                {
                    results = blobClient.ListBlobsSegmented("", token);
                    token   = results.ContinuationToken;

                    foreach (IListBlobItem blob in results.Results)
                    {
                        if (preExistingBlobs.Contains(blob.Uri))
                        {
                            continue;
                        }
                        else
                        {
                            if (blob is CloudPageBlob)
                            {
                                ((CloudPageBlob)blob).Delete();
                            }
                            else
                            {
                                ((CloudBlockBlob)blob).Delete();
                            }

                            listedBlobs.Add(blob.Uri);
                        }
                    }
                }while (token != null);

                Assert.AreEqual(2, listedBlobs.Count);
                do
                {
                    results = container.ListBlobsSegmented("", false, BlobListingDetails.None, null, token, null, null);
                    token   = results.ContinuationToken;

                    foreach (IListBlobItem blob in results.Results)
                    {
                        if (preExistingBlobs.Contains(blob.Uri))
                        {
                            continue;
                        }
                        else
                        {
                            if (blob is CloudPageBlob)
                            {
                                ((CloudPageBlob)blob).Delete();
                            }
                            else
                            {
                                ((CloudBlockBlob)blob).Delete();
                            }

                            listedBlobs.Add(blob.Uri);
                        }
                    }
                }while (token != null);

                Assert.AreEqual(5, listedBlobs.Count);
            }
            finally
            {
                container.DeleteIfExists();
            }
        }