/// <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; }
/// <summary> /// Parse URI for SAS (Shared Access Signature) information. /// </summary> /// <param name="address">The complete Uri.</param> /// <param name="credentials">The credentials to use.</param> private void ParseQueryAndVerify(StorageUri address, StorageCredentials credentials) { StorageCredentials parsedCredentials; DateTimeOffset? parsedSnapshot; this.StorageUri = NavigationHelper.ParseBlobQueryAndVerify(address, out parsedCredentials, out parsedSnapshot); if (parsedCredentials != null && credentials != null) { string error = string.Format(CultureInfo.CurrentCulture, SR.MultipleCredentialsProvided); throw new ArgumentException(error); } this.ServiceClient = new CloudBlobClient(NavigationHelper.GetServiceClientBaseAddress(this.StorageUri, null /* usePathStyleUris */), credentials ?? parsedCredentials); this.Name = NavigationHelper.GetContainerNameFromContainerAddress(this.Uri, this.ServiceClient.UsePathStyleUris); }