public AzureStorage( ICloudBlobDirectory directory, Uri baseAddress, TimeSpan maxExecutionTime, TimeSpan serverTimeout, bool initializeContainer) : base( baseAddress ?? GetDirectoryUri(directory)) { _directory = directory; // Unless overridden at the level of a single API call, these options will apply to all service calls that // use BlobRequestOptions. _directory.ServiceClient.DefaultRequestOptions = new BlobRequestOptions() { ServerTimeout = serverTimeout, MaximumExecutionTime = maxExecutionTime, RetryPolicy = new ExponentialRetry() }; if (initializeContainer) { if (_directory.Container.CreateIfNotExists()) { _directory.Container.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob }); if (Verbose) { Trace.WriteLine(string.Format("Created '{0}' public container", _directory.Container.Name)); } } } }
private static Uri GetDirectoryUri(ICloudBlobDirectory directory) { Uri uri = new UriBuilder(directory.Uri) { Scheme = "http", Port = 80 }.Uri; return(uri); }