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));
     }
 }
Example #2
0
        /// <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);
        }