public AzureBlobFileSystem(string connectionString, string containerName, DirectoryInfo cacheDirectory, PublicAccessType publicAccessType = PublicAccessType.None, IDictionary <string, string> containerMetaData = null, BlobContainerEncryptionScopeOptions blobContainerEncryptionScopeOptions = null) { _connectionString = connectionString ?? throw new ArgumentNullException(nameof(connectionString)); _containerName = containerName ?? throw new ArgumentNullException(nameof(containerName)); _cacheDirectory = cacheDirectory ?? throw new ArgumentNullException(nameof(cacheDirectory)); _publicAccessType = publicAccessType; _containerMetaData = containerMetaData; _blobContainerEncryptionScopeOptions = blobContainerEncryptionScopeOptions; if (!_cacheDirectory.Exists) { throw new DirectoryNotFoundException(nameof(cacheDirectory)); } }
/// <summary> /// Constructs a web request to create a new container. /// </summary> /// <param name="uri">The absolute URI to the container.</param> /// <param name="timeout">The server timeout interval.</param> /// <param name="accessType">An <see cref="BlobContainerPublicAccessType"/> object that specifies whether data in the container may be accessed publicly and what level of access is to be allowed.</param> /// <returns>A web request to use to perform the operation.</returns> public static StorageRequestMessage Create(Uri uri, int?timeout, HttpContent content, OperationContext operationContext, BlobContainerPublicAccessType accessType, BlobContainerEncryptionScopeOptions encryptionScopeOptions, ICanonicalizer canonicalizer, StorageCredentials credentials) { UriQueryBuilder containerBuilder = GetContainerUriQueryBuilder(); StorageRequestMessage request = HttpRequestMessageFactory.Create(uri, timeout, containerBuilder, content, operationContext, canonicalizer, credentials); if (accessType != BlobContainerPublicAccessType.Off) { request.Headers.Add(Constants.HeaderConstants.ContainerPublicAccessType, accessType.ToString().ToLower()); } if (null != encryptionScopeOptions) { request.Headers.Add(Constants.HeaderConstants.DefaultEncryptionScopeHeader, encryptionScopeOptions.DefaultEncryptionScope); request.Headers.Add(Constants.HeaderConstants.PreventEncryptionScopeOverrideHeader, encryptionScopeOptions.PreventEncryptionScopeOverride ? Constants.HeaderConstants.TrueHeader : Constants.HeaderConstants.FalseHeader); } return(request); }