public BlobRepositoryFactory(IConfiguration configuration, IAzureAssemblyLogger logger) { if (configuration == null) throw new ArgumentNullException(nameof(configuration)); _configuration = configuration; _logger = logger; }
public BlockBlob(CloudBlockBlob blockBlob, string name, IAzureAssemblyLogger logger) { if (blockBlob == null) throw new ArgumentNullException(nameof(blockBlob)); _blockBlob = blockBlob; _name = name; _logger = logger; }
public AsynchronousBlockBlobRepository( string storageAccountConnectionString, string containerName, IAzureAssemblyLogger logger) { _logger = logger; if (IsNullOrWhiteSpace(containerName)) throw new ArgumentNullException(nameof(containerName)); if (IsNullOrWhiteSpace(storageAccountConnectionString)) throw new ArgumentNullException(nameof(storageAccountConnectionString)); CloudStorageAccount storageAccount = CloudStorageAccount.Parse(storageAccountConnectionString); CloudBlobClient client = storageAccount.CreateCloudBlobClient(); client.DefaultRequestOptions.RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(120), 3); _container = client.GetContainerReference(containerName); // Development storage doesn't return a '/' on the end, live storage does. _endpoint = !client.BaseUri.ToString().EndsWith("/") ? $"{client.BaseUri}/{containerName}" : $"{client.BaseUri}{containerName}"; _logger?.Verbose("AsynchronousBlockBlobRepository: create repository for endpoint {0}", _endpoint); }