/// <summary> /// Initializes a new instance of the <see cref="AzureStorageManager" /> class. /// </summary> /// <param name="credential">The credential.</param> /// <param name="region">The region.</param> /// <param name="useHttps">The use HTTPS.</param> public AzureStorageManager(StorageCredentials credential, AzureServiceProviderRegion region = AzureServiceProviderRegion.Global, bool useHttps = true) : this(new CloudStorageAccount( credential, GetStorageEndpointUri(useHttps, credential.AccountName, "blob", region), GetStorageEndpointUri(useHttps, credential.AccountName, "queue", region), GetStorageEndpointUri(useHttps, credential.AccountName, "table", region), GetStorageEndpointUri(useHttps, credential.AccountName, "file", region))) { }
/// <summary> /// Initializes a new instance of the <see cref="AzureBlobOperator" /> class. /// </summary> /// <param name="credential">The credential.</param> /// <param name="region">The region.</param> /// <param name="useHttps">The use HTTPS.</param> public AzureBlobOperator(StorageCredentials credential, AzureServiceProviderRegion region = AzureServiceProviderRegion.Global, bool useHttps = true) : this(credential.ToCloudStorageAccount(region, useHttps)) { }
/// <summary> /// Initializes a new instance of the <see cref="AzureBlobOperator"/> class. /// </summary> /// <param name="endpoint">The endpoint.</param> /// <param name="region">The region.</param> protected AzureBlobOperator(ApiEndpoint endpoint, AzureServiceProviderRegion region) : this(AzureStorageExtension.ToCloudStorageAccount(endpoint, region)) { }
/// <summary> /// Gets the storage endpoint URI. /// </summary> /// <param name="useHttps">if set to <c>true</c> [use HTTPS].</param> /// <param name="accountName">Name of the account.</param> /// <param name="feature">The feature.</param> /// <param name="region">The region.</param> /// <returns>Uri.</returns> protected static Uri GetStorageEndpointUri(bool useHttps, string accountName, string feature, AzureServiceProviderRegion region) { string uriFormat; switch (region) { case AzureServiceProviderRegion.China: uriFormat = "{0}://{1}.{2}.core.chinacloudapi.cn"; break; default: uriFormat = "{0}://{1}.{2}.core.windows.net"; break; } return new Uri(string.Format(uriFormat, useHttps ? "https" : "http", accountName, feature)); }
/// <summary> /// Initializes a new instance of the <see cref="AzureQueueOperator{T}" /> class. /// </summary> /// <param name="credential">The credential.</param> /// <param name="queueName">Name of the queue.</param> /// <param name="encodeMessage">if set to <c>true</c> [encode message].</param> /// <param name="region">The region.</param> /// <param name="useHttps">The use HTTPS.</param> public AzureQueueOperator(StorageCredentials credential, string queueName, bool encodeMessage, AzureServiceProviderRegion region = AzureServiceProviderRegion.Global, bool useHttps = true) : this(credential.ToCloudStorageAccount(region, useHttps), queueName, encodeMessage) { }
/// <summary> /// Initializes a new instance of the <see cref="AzureQueueOperator{T}" /> class. /// </summary> /// <param name="endpoint">The endpoint.</param> /// <param name="region">The region.</param> /// <param name="queueName">Name of the queue.</param> /// <param name="encodeMessage">if set to <c>true</c> [encode message].</param> protected AzureQueueOperator(ApiEndpoint endpoint, AzureServiceProviderRegion region, string queueName, bool encodeMessage) : this(AzureStorageExtension.ToCloudStorageAccount(endpoint, region), queueName, encodeMessage) { }
/// <summary> /// Gets the storage endpoint URI. /// </summary> /// <param name="useHttps">if set to <c>true</c> [use HTTPS].</param> /// <param name="accountName">Name of the account.</param> /// <param name="feature">The feature.</param> /// <param name="region">The region.</param> /// <returns>Uri.</returns> internal static Uri GetStorageEndpointUri(bool useHttps, string accountName, string feature, AzureServiceProviderRegion region) { string uriFormat; switch (region) { case AzureServiceProviderRegion.China: uriFormat = "{0}://{1}.{2}.core.chinacloudapi.cn"; break; default: uriFormat = "{0}://{1}.{2}.core.windows.net"; break; } return(new Uri(string.Format(uriFormat, useHttps ? HttpConstants.HttpProtocols.Https : HttpConstants.HttpProtocols.Http, accountName, feature))); }
/// <summary> /// To the cloud storage account. /// </summary> /// <param name="credential">The credential.</param> /// <param name="region">The region.</param> /// <param name="useHttps">if set to <c>true</c> [use HTTPS].</param> /// <returns></returns> internal static CloudStorageAccount ToCloudStorageAccount(this StorageCredentials credential, AzureServiceProviderRegion region = AzureServiceProviderRegion.Global, bool useHttps = true) { return(new CloudStorageAccount( credential, GetStorageEndpointUri(useHttps, credential.AccountName, "blob", region), GetStorageEndpointUri(useHttps, credential.AccountName, "queue", region), GetStorageEndpointUri(useHttps, credential.AccountName, "table", region), GetStorageEndpointUri(useHttps, credential.AccountName, "file", region))); }
/// <summary> /// To the cloud storage account. /// </summary> /// <param name="endpoint">The endpoint.</param> /// <param name="region">The region.</param> /// <returns>Microsoft.WindowsAzure.Storage.CloudStorageAccount.</returns> public static CloudStorageAccount ToCloudStorageAccount(this Api.ApiEndpoint endpoint, AzureServiceProviderRegion region) { if (endpoint != null) { var useHttps = endpoint.Protocol.SafeEquals(HttpConstants.HttpProtocols.Https, StringComparison.InvariantCultureIgnoreCase); var accountKey = endpoint.Token; var accountName = endpoint.Account; var customBlobDomain = endpoint.Host; return(new CloudStorageAccount( new StorageCredentials(accountName, accountKey), string.IsNullOrWhiteSpace(customBlobDomain) ? GetStorageEndpointUri(useHttps, accountName, "blob", region) : new Uri(customBlobDomain), GetStorageEndpointUri(useHttps, accountName, "queue", region), GetStorageEndpointUri(useHttps, accountName, "table", region), GetStorageEndpointUri(useHttps, accountName, "file", region))); } return(null); }