コード例 #1
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CloudBlobContainer"/> class.
 /// </summary>
 /// <param name="containerName">The container name.</param>
 /// <param name="serviceClient">The client to be used.</param>
 internal CloudBlobContainer(BlobContainerProperties properties, IDictionary<string, string> metadata, string containerName, CloudBlobClient serviceClient)
 {
     this.Uri = NavigationHelper.AppendPathToUri(serviceClient.BaseUri, containerName);
     this.ServiceClient = serviceClient;
     this.Name = containerName;
     this.Metadata = metadata;
     this.Properties = properties;
 }
コード例 #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="CloudBlobContainer"/> class.
 /// </summary>
 /// <param name="properties">The properties.</param>
 /// <param name="metadata">The metadata.</param>
 /// <param name="containerName">The container name.</param>
 /// <param name="serviceClient">The client to be used.</param>
 internal CloudBlobContainer(BlobContainerProperties properties, IDictionary <string, string> metadata, string containerName, CloudBlobClient serviceClient)
 {
     this.StorageUri    = NavigationHelper.AppendPathToUri(serviceClient.StorageUri, containerName);
     this.ServiceClient = serviceClient;
     this.Name          = containerName;
     this.Metadata      = metadata;
     this.Properties    = properties;
 }
コード例 #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CloudBlobContainer"/> class.
        /// </summary>
        /// <param name="properties">The properties.</param>
        /// <param name="metadata">The metadata.</param>
        /// <param name="containerName">The container name.</param>
        /// <param name="serviceClient">The client to be used.</param>
        internal CloudBlobContainer(BlobContainerProperties properties, IDictionary <string, string> metadata, string containerName, CloudBlobClient serviceClient)
        {
            this.StorageUri    = NavigationHelper.AppendPathToUri(serviceClient.StorageUri, containerName);
            this.ServiceClient = serviceClient;

            // Set the relativized name from the URI.
            this.Name       = NavigationHelper.GetContainerNameFromContainerAddress(this.Uri, this.ServiceClient.UsePathStyleUris);
            this.Metadata   = metadata;
            this.Properties = properties;
        }
コード例 #4
0
 internal CloudBlobContainer(BlobContainerProperties properties, IDictionary <string, string> metadata, string containerName, CloudBlobClient serviceClient)
 {
     throw new System.NotImplementedException();
 }
コード例 #5
0
        // Get container properties.
        // Return true on success, false if not found, throw exception on error.
        public bool GetContainerProperties(string containerName, out BlobContainerProperties properties)
        {
            properties = null;

            try
            {
                CloudBlobContainer container = BlobClient.GetContainerReference(containerName);
                container.FetchAttributes();
                properties = container.Properties;
                return true;
            }
            catch (StorageException ex)
            {
                if (ex.RequestInformation.HttpStatusCode == 404)
                {
                    return false;
                }

                throw;
            }
        }
コード例 #6
0
        // Perform blob storage operations.
        private static void TestBlobStorage()
        {
            string storageConnectionString = ConfigurationManager.ConnectionStrings["Storage"].ConnectionString;
            BlobHelper BlobHelper = new BlobHelper(storageConnectionString);

            if (!File.Exists("blob1.txt"))
                File.WriteAllText("blob1.txt", "This is a text blob!");

            try
            {
                Separator();

                List<CloudBlobContainer> containers;
                Console.Write("List containers ");
                if (BlobHelper.ListContainers(out containers))
                {
                    Console.WriteLine("true");
                    if (containers != null)
                    {
                        foreach (CloudBlobContainer container in containers)
                        {
                            Console.Write(container.Name + " ");
                        }
                        Console.WriteLine();
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Create container ");
                if (BlobHelper.CreateContainer("samplecontainer1"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Delete container ");
                if (BlobHelper.DeleteContainer("samplecontainer0"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Set container ACL ");
                if (BlobHelper.SetContainerACL("samplecontainer1", "container"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string accessLevel;

                Console.Write("Get container ACL ");
                if (BlobHelper.GetContainerACL("samplecontainer1", out accessLevel))
                {
                    Console.WriteLine("true " + accessLevel);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                SortedList<string, SharedAccessBlobPolicy> policies = new SortedList<string, SharedAccessBlobPolicy>();

                SharedAccessBlobPolicy policy1 = new SharedAccessBlobPolicy()
                {
                    Permissions = SharedAccessBlobPermissions.List | SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Delete,
                    SharedAccessStartTime = DateTime.UtcNow,
                    SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1)
                };

                policies.Add("Policy1", policy1);

                policies.Add("Policy2", new SharedAccessBlobPolicy()
                {
                    Permissions = SharedAccessBlobPermissions.Read,
                    SharedAccessStartTime = DateTime.Parse("2010-01-01T09:38:05Z"),
                    SharedAccessExpiryTime = DateTime.Parse("2012-12-31T09:38:05Z")
                });

                Console.Write("Set container access policy ");
                if (BlobHelper.SetContainerAccessPolicy("samplecontainer1", policies))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Get container access policy ");
                if (BlobHelper.GetContainerAccessPolicy("samplecontainer1", out policies))
                {
                    Console.WriteLine("true");
                    if (policies != null)
                    {
                        foreach (KeyValuePair<string, SharedAccessBlobPolicy> policy in policies)
                        {
                            Console.WriteLine("Policy " + policy.Key);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string signature = String.Empty;

                Console.Write("Create shared access signature ");
                if (BlobHelper.GenerateSharedAccessSignature("samplecontainer1", policy1, out signature))
                {
                    Console.WriteLine("true " + signature);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                signature = String.Empty;

                Console.Write("Create shared access signature from access policy ");
                if (BlobHelper.GenerateSharedAccessSignature("samplecontainer1", "Policy1", out signature))
                {
                    Console.WriteLine("true " + signature);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                signature = String.Empty;

                Console.Write("Create shared access signature from access policy 2 ");
                if (BlobHelper.GenerateSharedAccessSignature("samplecontainer1", "Policy2", out signature))
                {
                    Console.WriteLine("true " + signature);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                BlobContainerProperties containerProperties = new BlobContainerProperties();

                Console.Write("Get container properties ");
                if (BlobHelper.GetContainerProperties("samplecontainer1", out containerProperties))
                {
                    Console.WriteLine("true");
                    Console.WriteLine("BlobContainerProperties.Etag: " + containerProperties.ETag);
                    Console.WriteLine("BlobContainerProperties.LastModifiedUtc: " + containerProperties.LastModified.Value.UtcDateTime);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                NameValueCollection metadata = new NameValueCollection();

                metadata.Add("property1", "Value1");
                metadata.Add("property2", "Value2");
                metadata.Add("property3", "Value3");

                Console.Write("Set container metadata ");
                if (BlobHelper.SetContainerMetadata("samplecontainer1", metadata))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                metadata = new NameValueCollection();

                Console.Write("Get container metadata ");
                if (BlobHelper.GetContainerMetadata("samplecontainer1", out metadata))
                {
                    Console.WriteLine("true");
                    if (metadata != null)
                    {
                        for (int i = 0; i < metadata.Count; i++)
                        {
                            Console.WriteLine(metadata.GetKey(i) + ": " + metadata.Get(i));
                        }
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                //Console.Write("Delete container container1 ");
                //if (BlobHelper.DeleteContainer("samplecontainer1"))
                //{
                //    Console.WriteLine("true");
                //}
                //else
                //{
                //    Console.WriteLine("false");
                //}

                Separator();

                List<IListBlobItem> blobs;
                Console.Write("List blobs ");
                if (BlobHelper.ListBlobs("samplecontainer1", out blobs))
                {
                    Console.WriteLine("true");
                    if (blobs != null)
                    {
                        foreach (IListBlobItem blob in blobs)
                        {
                            Console.WriteLine(blob.Uri.LocalPath);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put blob ");
                if (BlobHelper.PutBlob("samplecontainer1", "blob1.txt"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put page blob ");
                if (BlobHelper.PutBlob("samplecontainer1", "pageblob1.txt", 2048))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string page0 = new string('A', 512);

                Console.Write("Put page 0 ");
                if (BlobHelper.PutPage("samplecontainer1", "pageblob1.txt", page0, 0, 512))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string page1 = new string('B', 512);

                Console.Write("Put page 1 ");
                if (BlobHelper.PutPage("samplecontainer1", "pageblob1.txt", page1, 512, 512))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                page0 = String.Empty;

                Console.Write("Get page 0 ");
                if (BlobHelper.GetPage("samplecontainer1", "pageblob1.txt", 0, 512, out page0))
                {
                    Console.WriteLine("true");
                    Console.WriteLine(page0);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                page1 = String.Empty;

                Console.Write("Get page 1 ");
                if (BlobHelper.GetPage("samplecontainer1", "pageblob1.txt", 512, 512, out page1))
                {
                    Console.WriteLine("true");
                    Console.WriteLine(page1);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                PageRange[] ranges;

                Console.Write("Get page regions ");
                if (BlobHelper.GetPageRegions("samplecontainer1", "pageblob1.txt", out ranges))
                {
                    Console.WriteLine("true");
                    if (ranges != null)
                    {
                        foreach (PageRange range in ranges)
                        {
                            Console.WriteLine(range.StartOffset.ToString() + "-" + range.EndOffset.ToString());
                        }
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Get blob ");
                using (Stream content = File.OpenWrite(@"blob1.txt"))
                {
                if (BlobHelper.GetBlob("samplecontainer1", "blob1.txt", content))
                {
                    Console.WriteLine("true");
                    Console.WriteLine(content);
                }
                else
                {
                    Console.WriteLine("false");
                }
                }
                Separator();

                Console.Write("Copy blob ");
                if (BlobHelper.CopyBlob("samplecontainer1", "blob1.txt", "samplecontainer1", "blob2.txt"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Snapshot blob ");
                if (BlobHelper.SnapshotBlob("samplecontainer1", "blob1.txt"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Delete blob ");
                if (BlobHelper.DeleteBlob("samplecontainer1", "blob2.txt"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                SortedList<string, string> properties = new SortedList<string, string>();
                properties.Add("ContentType", "text/html");

                Console.Write("Set blob properties ");
                if (BlobHelper.SetBlobProperties("samplecontainer1", "blob1.txt", properties))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Get blob properties ");
                if (BlobHelper.GetBlobProperties("samplecontainer1", "blob1.txt", out properties))
                {
                    Console.WriteLine("true");
                    foreach (KeyValuePair<string, string> item in properties)
                    {
                        Console.WriteLine(item.Key + ": " + item.Value);
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put blob If Unchanged 1 ");
                if (BlobHelper.PutBlobIfUnchanged("samplecontainer1", "blob1.txt", properties["ETag"]))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put blob If Unchanged 2 ");
                if (BlobHelper.PutBlobIfUnchanged("samplecontainer1", "blob1.txt", "BadETag"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put blob with MD5 ");
                if (BlobHelper.PutBlobWithMD5("samplecontainer1", "blob1.txt", "This is a text blob!"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                metadata.Clear();
                metadata.Add("property1", "Value1");
                metadata.Add("property2", "Value2");
                metadata.Add("property3", "Value3");
                metadata.Add("property4", "Value4");

                Console.Write("Set blob metadata ");
                if (BlobHelper.SetBlobMetadata("samplecontainer1", "blob1.txt", metadata))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Get blob metadata ");
                if (BlobHelper.GetBlobMetadata("samplecontainer1", "blob1.txt", out metadata))
                {
                    Console.WriteLine("true");
                    for (int i = 0; i < metadata.Count; i++)
                    {
                        Console.WriteLine(metadata.GetKey(i) + ": " + metadata.Get(i));
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string leaseAction = "acquire";
                string leaseId = string.Empty;
                Console.Write("Lease blob - acquire ");
                if (BlobHelper.LeaseBlob("samplecontainer1", "blob1.txt", leaseAction, ref leaseId))
                {
                    Console.WriteLine("true " + leaseId);
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                leaseAction = "release";
                Console.Write("Lease blob - release ");
                if (BlobHelper.LeaseBlob("samplecontainer1", "blob1.txt", leaseAction, ref leaseId))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string[] blockIds = new string[3];

                Console.Write("Put block 0 ");
                if (BlobHelper.PutBlock("samplecontainer1", "largeblob1.txt", 0, blockIds, "AAAAAAAAAA"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put block 1 ");
                if (BlobHelper.PutBlock("samplecontainer1", "largeblob1.txt", 1, blockIds, "BBBBBBBBBB"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put block 2 ");
                if (BlobHelper.PutBlock("samplecontainer1", "largeblob1.txt", 2, blockIds, "CCCCCCCCCC"))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                string[] getblockids = null;

                Console.Write("Get block list ");
                if (BlobHelper.GetBlockList("samplecontainer1", "largeblob1.txt", out getblockids))
                {
                    Console.WriteLine("true");
                    if (getblockids != null)
                    {
                        for (int i = 0; i < getblockids.Length; i++)
                        {
                            Console.WriteLine("Block " + i + " id = " + getblockids[i]);
                        }
                    }
                }
                else
                {
                    Console.WriteLine("false");
                }

                Separator();

                Console.Write("Put block list ");
                if (BlobHelper.PutBlockList("samplecontainer1", "largeblob1.txt", blockIds))
                {
                    Console.WriteLine("true");
                }
                else
                {
                    Console.WriteLine("false");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("EXCEPTION " + ex.ToString());
            }

            if (File.Exists("blob1.txt"))
                File.Delete("blob1.txt");
        }
コード例 #7
0
        /// <summary>
        /// Initializes a new instance of the <see cref="CloudBlobContainer"/> class.
        /// </summary>
        /// <param name="properties">The properties.</param>
        /// <param name="metadata">The metadata.</param>
        /// <param name="containerName">The container name.</param>
        /// <param name="serviceClient">The client to be used.</param>
        internal CloudBlobContainer(BlobContainerProperties properties, IDictionary<string, string> metadata, string containerName, CloudBlobClient serviceClient)
        {
            this.StorageUri = NavigationHelper.AppendPathToUri(serviceClient.StorageUri, containerName);
            this.ServiceClient = serviceClient;

            // Set the relativized name from the URI.
            this.Name = NavigationHelper.GetContainerNameFromContainerAddress(this.Uri, this.ServiceClient.UsePathStyleUris);
            this.Metadata = metadata;
            this.Properties = properties;
        }