public void UriParser_ParsingWellFormedMinimalLocalStoragePartitionName_Succeeds() { var expected = "partition"; var url = "http://127.0.0.1:10000/account-name/partition"; var uri = new Uri(url); Assert.AreEqual(expected, uri.StoragePartitionName()); }
public void UriParser_ParsingWellFormedComplexCloudStoragePartitionName_Succeeds() { var expected = "partition"; var url = "http://accountname.queue.core.windows.net/partition/somethingelse?SomeQueryStringForNow"; var uri = new Uri(url); Assert.AreEqual(expected, uri.StoragePartitionName()); }
public static string GetBlobName(Uri uri) { string pathAndQuery = uri.PathAndQuery; // everything to the right of domain name string blobNameAndQuery = pathAndQuery.Substring(uri.StoragePartitionName().Length + 2); // blob name is after container... // ... but don't include query string (if one is present) [note: query strings are ignored by Blob Storage] // [http://blogs.msdn.com/b/windowsazure/archive/2011/03/18/best-practices-for-the-windows-azure-content-delivery-network.aspx] // ["In blob storage origin, query strings are always ignored. In particular, shared access strings cannot be used to enable CDN access to a private container."] string blobName = blobNameAndQuery.IndexOf('?') > 0 ? blobNameAndQuery.Substring(0, blobNameAndQuery.IndexOf('?')) : blobNameAndQuery; return blobName; }
public static bool ContainerNameIsLongEnough(Uri uri) { return uri.StoragePartitionName().Length >= MinLengthAzureBlobContainerName; }