Ejemplo n.º 1
0
        public void AnonymousRoundtrip()
        {
            var accountString = "BlobEndpoint=http://blobs/";

            Assert.AreEqual(accountString, StorageConnectionString.Parse(accountString).ToString(true));

            var account = new StorageConnectionString(null, new Uri("http://blobs/"), null, null, null);

            this.AccountsAreEqual(account, StorageConnectionString.Parse(account.ToString(true)));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Create connection string for azure blob storage
        /// </summary>
        public static StorageConnectionString ForAzureDataLakeStorageWithSharedKey(this IConnectionStringFactory factory,
                                                                                   string accountName,
                                                                                   string accountKey)
        {
            var cs = new StorageConnectionString(KnownPrefix.AzureDataLakeGen2);

            cs.Parameters[KnownParameter.AccountName]   = accountName;
            cs.Parameters[KnownParameter.KeyOrPassword] = accountKey;
            return(cs);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Create connection string for azure blob storage
        /// </summary>
        public static StorageConnectionString ForAzureBlobStorage(this IConnectionStringFactory factory,
                                                                  string accountName,
                                                                  string accountKey)
        {
            var cs = new StorageConnectionString(KnownPrefix.AzureBlobStorage + "://");

            cs.Parameters[KnownParameter.AccountName]   = accountName;
            cs.Parameters[KnownParameter.KeyOrPassword] = accountKey;
            return(cs);
        }
Ejemplo n.º 4
0
        private void SetConnectionString(string connection)
        {
            if (string.IsNullOrWhiteSpace(connection))
            {
                throw new Exception("Azure connection cannot be null or empty");
            }

            CosmosStorageAccount = Microsoft.Azure.Cosmos.Table.CloudStorageAccount.Parse(connection);
            StorageCredentials   = (StorageSharedKeyCredential)StorageConnectionString.Parse(connection).Credentials;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Initializes a new instance of the <see cref="ShareServiceClient"/>
        /// class.
        /// </summary>
        /// <param name="connectionString">
        /// A connection string includes the authentication information
        /// required for your application to access data in an Azure Storage
        /// account at runtime.
        ///
        /// For more information, <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string">Configure Azure Storage connection strings</see>
        /// </param>
        /// <param name="options">
        /// Optional client options that define the transport pipeline
        /// policies for authentication, retries, etc., that are applied to
        /// every request.
        /// </param>
        public ShareServiceClient(string connectionString, ShareClientOptions options)
        {
            options ??= new ShareClientOptions();
            var conn = StorageConnectionString.Parse(connectionString);

            _uri               = conn.FileEndpoint;
            _pipeline          = options.Build(conn.Credentials);
            _version           = options.Version;
            _clientDiagnostics = new ClientDiagnostics(options);
        }
Ejemplo n.º 6
0
 public IBlobStorage?CreateBlobStorage(StorageConnectionString connectionString)
 {
     if (connectionString.Prefix != Prefix)
     {
         return(null);
     }
     connectionString.GetRequired("username", true, out string userName);
     connectionString.GetRequired("password", true, out string password);
     connectionString.GetRequired("bucket", true, out string bucket);
     return(new PassiveFtpStorage(new NetworkCredential(userName, password, SelectelFtpDomain), bucket));
 }
        public void Handles_special_characters(string valueToSave)
        {
            var cs = new StorageConnectionString("local://");

            cs["key"] = valueToSave;

            string css = cs.ToString();

            cs = new StorageConnectionString(css);
            Assert.Equal(valueToSave, cs["key"]);
        }
        private void ValidateRoundTrip(string connectionString)
        {
            var parsed = StorageConnectionString.Parse(connectionString);

            var reserialized = parsed.ToString(true);

            var reparsed = StorageConnectionString.Parse(reserialized);

            // make sure it round trips
            this.AccountsAreEqual(parsed, reparsed);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueServiceClient"/>
        /// class.
        /// </summary>
        /// <param name="connectionString">
        /// A connection string includes the authentication information
        /// required for your application to access data in an Azure Storage
        /// account at runtime.
        ///
        /// For more information, see
        /// <see href="https://docs.microsoft.com/azure/storage/common/storage-configure-connection-string">
        /// Configure Azure Storage connection strings</see>.
        /// </param>
        /// <param name="options">
        /// Optional client options that define the transport pipeline
        /// policies for authentication, retries, etc., that are applied to
        /// every request.
        /// </param>
        public QueueServiceClient(string connectionString, QueueClientOptions options)
        {
            var conn = StorageConnectionString.Parse(connectionString);

            _uri = conn.QueueEndpoint;
            options ??= new QueueClientOptions();
            _pipeline             = options.Build(conn.Credentials);
            _version              = options.Version;
            _clientDiagnostics    = new ClientDiagnostics(options);
            _clientSideEncryption = QueueClientSideEncryptionOptions.CloneFrom(options._clientSideEncryptionOptions);
        }
Ejemplo n.º 10
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == KnownPrefix.AzureFilesStorage)
            {
                connectionString.GetRequired(KnownParameter.AccountName, true, out string accountName);
                connectionString.GetRequired(KnownParameter.KeyOrPassword, true, out string key);

                return(AzureFilesBlobStorage.CreateFromAccountNameAndKey(accountName, key));
            }

            return(null);
        }
Ejemplo n.º 11
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "google.storage")
            {
                connectionString.GetRequired("bucket", true, out string bucketName);
                connectionString.GetRequired("cred", true, out string base64EncodedJson);

                return(StorageFactory.Blobs.GoogleCloudStorageFromJson(bucketName, base64EncodedJson, true));
            }

            return(null);
        }
Ejemplo n.º 12
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == KnownPrefix.Databricks)
            {
                connectionString.GetRequired("baseUri", true, out string baseUri);
                connectionString.GetRequired("token", true, out string token);

                return(new DatabricksBlobStorage(baseUri, token));
            }

            return(null);
        }
Ejemplo n.º 13
0
        public IKeyValueStorage CreateKeyValueStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.tables")
            {
                connectionString.GetRequired("account", true, out string acctountName);
                connectionString.GetRequired("key", true, out string key);

                return(new AzureTableStorageKeyValueStorage(acctountName, key));
            }

            return(null);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="QueueServiceClient"/>
        /// class.
        /// </summary>
        /// <param name="connectionString">
        /// A connection string includes the authentication information
        /// required for your application to access data in an Azure Storage
        /// account at runtime.
        ///
        /// For more information, <see href="https://docs.microsoft.com/en-us/azure/storage/common/storage-configure-connection-string"/>.
        /// </param>
        /// <param name="connectionOptions">
        /// Optional connection options that define the transport pipeline
        /// policies for authentication, retries, etc., that are applied to
        /// every request.
        /// </param>
        /// <remarks>
        /// The credentials on <paramref name="connectionString"/> will override those on <paramref name="connectionOptions"/>.
        /// </remarks>
        public QueueServiceClient(string connectionString, QueueConnectionOptions connectionOptions = default)
        {
            var conn = StorageConnectionString.Parse(connectionString);

            // TODO: perform a copy of the options instead
            var connOptions = connectionOptions ?? new QueueConnectionOptions();

            connOptions.Credentials = conn.Credentials;

            this.Uri       = conn.QueueEndpoint;
            this._pipeline = connOptions.Build();
        }
Ejemplo n.º 15
0
        internal StorageConnectionString GetConnectionString(
            SharedAccessSignatureCredentials credentials = default,
            bool includeEndpoint = true)
        {
            credentials ??= GetAccountSasCredentials();
            if (!includeEndpoint)
            {
                return(new StorageConnectionString(
                           credentials,
                           (new Uri(TestConfigDefault.BlobServiceEndpoint), new Uri(TestConfigDefault.BlobServiceSecondaryEndpoint)),
                           (new Uri(TestConfigDefault.QueueServiceEndpoint), new Uri(TestConfigDefault.QueueServiceSecondaryEndpoint)),
                           (new Uri(TestConfigDefault.TableServiceEndpoint), new Uri(TestConfigDefault.TableServiceSecondaryEndpoint)),
                           (new Uri(TestConfigDefault.FileServiceEndpoint), new Uri(TestConfigDefault.FileServiceSecondaryEndpoint))));
            }

            (Uri, Uri)queueUri = (new Uri(TestConfigDefault.QueueServiceEndpoint), new Uri(TestConfigDefault.QueueServiceSecondaryEndpoint));

            return(new StorageConnectionString(
                       credentials,
                       queueStorageUri: queueUri));
        }
Ejemplo n.º 16
0
        public IMessenger CreateMessenger(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == Constants.AzureQueueConnectionPrefix)
            {
                connectionString.GetRequired(KnownParameter.AccountName, true, out string accountName);
                connectionString.GetRequired(KnownParameter.KeyOrPassword, true, out string key);

                return(new AzureStorageQueueMessenger(accountName, key));
            }

            return(null);
        }
 public void DevStoreProxyUri()
 {
     Assert.IsTrue(StorageConnectionString.TryParse("UseDevelopmentStorage=true;DevelopmentStorageProxyUri=http://ipv4.fiddler", out StorageConnectionString devstoreAccount));
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10000/devstoreaccount1"), devstoreAccount.BlobEndpoint);
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10001/devstoreaccount1"), devstoreAccount.QueueEndpoint);
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10000/devstoreaccount1"), devstoreAccount.BlobStorageUri.PrimaryUri);
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10001/devstoreaccount1"), devstoreAccount.QueueStorageUri.PrimaryUri);
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10000/devstoreaccount1-secondary"), devstoreAccount.BlobStorageUri.SecondaryUri);
     Assert.AreEqual(new Uri("http://ipv4.fiddler:10001/devstoreaccount1-secondary"), devstoreAccount.QueueStorageUri.SecondaryUri);
     Assert.IsNull(devstoreAccount.FileStorageUri.PrimaryUri);
     Assert.IsNull(devstoreAccount.FileStorageUri.SecondaryUri);
 }
Ejemplo n.º 18
0
        public IMessenger CreateMessenger(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == KnownPrefix.AzureEventHub)
            {
                if (connectionString.IsNative)
                {
                    return(new AzureEventHubMessenger(connectionString.Native, null));
                }
            }

            return(null);
        }
Ejemplo n.º 19
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.blob")
            {
                connectionString.GetRequired("account", true, out string accountName);
                connectionString.GetRequired("key", true, out string key);

                return(new AzureUniversalBlobStorageProvider(accountName, key));
            }

            return(null);
        }
Ejemplo n.º 20
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.datalake.gen1")
            {
                connectionString.GetRequired("account", true, out string accountName);
                connectionString.GetRequired("tenantId", true, out string tenantId);
                connectionString.GetRequired("principalId", true, out string principalId);
                connectionString.GetRequired("principalSecret", true, out string principalSecret);

                int.TryParse(connectionString.Get("listBatchSize"), out int listBatchSize);

                AzureDataLakeGen1Storage client = AzureDataLakeGen1Storage.CreateByClientSecret(
                    accountName, tenantId, principalId, principalSecret);

                if (listBatchSize != 0)
                {
                    client.ListBatchSize = listBatchSize;
                }

                return(client);
            }
            else if (connectionString.Prefix == "azure.datalake.gen2")
            {
                connectionString.GetRequired("account", true, out string accountName);

                if (connectionString.Parameters.ContainsKey("msi"))
                {
                    return(AzureDataLakeStoreGen2BlobStorageProvider.CreateByManagedIdentity(accountName));
                }

                string key = connectionString.Get("key");

                if (!string.IsNullOrWhiteSpace(key))
                {
                    //connect with shared key

                    return(AzureDataLakeStoreGen2BlobStorageProvider.CreateBySharedAccessKey(accountName, key));
                }
                else
                {
                    //connect with service principal

                    connectionString.GetRequired("tenantId", true, out string tenantId);
                    connectionString.GetRequired("principalId", true, out string principalId);
                    connectionString.GetRequired("principalSecret", true, out string principalSecret);

                    return(AzureDataLakeStoreGen2BlobStorageProvider.CreateByClientSecret(accountName, tenantId, principalId, principalSecret));
                }
            }

            return(null);
        }
Ejemplo n.º 21
0
        public IMessagePublisher CreateMessagePublisher(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.queue")
            {
                connectionString.GetRequired("account", true, out string accountName);
                connectionString.GetRequired("key", true, out string key);
                connectionString.GetRequired("queue", true, out string queueName);

                return(new AzureStorageQueuePublisher(accountName, key, queueName));
            }

            return(null);
        }
Ejemplo n.º 22
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "ftp")
            {
                connectionString.GetRequired("host", true, out string host);
                connectionString.GetRequired("user", true, out string user);
                connectionString.GetRequired("password", true, out string password);

                return(new FluentFtpBlobStorage(host, new NetworkCredential(user, password)));
            }

            return(null);
        }
Ejemplo n.º 23
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.keyvault")
            {
                connectionString.GetRequired("vaultUri", true, out string uri);
                connectionString.GetRequired("clientId", true, out string clientId);
                connectionString.GetRequired("clientSecret", true, out string clientSecret);

                return(new AzureKeyVaultBlobStorageProvider(new Uri(uri), clientId, clientSecret));
            }

            return(null);
        }
Ejemplo n.º 24
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == KnownPrefix.DatabricksDbfs)
            {
                connectionString.GetRequired("baseUri", true, out string baseUri);
                connectionString.GetRequired("token", true, out string token);
                string isReadOnlyString = connectionString.Get("isReadOnly");
                bool.TryParse(isReadOnlyString, out bool isReadOnly);

                return(new AzureDatabricksDbfsBlobStorage(baseUri, token, isReadOnly));
            }

            return(null);
        }
Ejemplo n.º 25
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.blob")
            {
                connectionString.GetRequired("account", true, out string accountName);
                string containerName = connectionString.Get("container");
                connectionString.GetRequired("key", true, out string key);

                return(new AzureUniversalBlobStorageProvider(accountName, key,
                                                             string.IsNullOrEmpty(containerName) ? null : containerName));
            }

            return(null);
        }
Ejemplo n.º 26
0
        /// <summary>
        ///
        /// </summary>
        public static StorageConnectionString ForAzureDataLakeStorageWithAzureAd(this IConnectionStringFactory factory,
                                                                                 string accountName,
                                                                                 string tenantId,
                                                                                 string applicationId,
                                                                                 string applicationSecret)
        {
            var cs = new StorageConnectionString(KnownPrefix.AzureDataLakeGen2);

            cs.Parameters[KnownParameter.AccountName]  = accountName;
            cs.Parameters[KnownParameter.TenantId]     = tenantId;
            cs.Parameters[KnownParameter.ClientId]     = applicationId;
            cs.Parameters[KnownParameter.ClientSecret] = applicationSecret;
            return(cs);
        }
Ejemplo n.º 27
0
        public IBlobStorage CreateBlobStorage(StorageConnectionString connectionString)
        {
            if (connectionString.Prefix == "azure.datalakestore")
            {
                connectionString.GetRequired("accountName", true, out string accountName);
                connectionString.GetRequired("tenantId", true, out string tenantId);
                connectionString.GetRequired("principalId", true, out string principalId);
                connectionString.GetRequired("principalSecret", true, out string principalSecret);

                return(AzureDataLakeStoreBlobStorageProvider.CreateByClientSecret(accountName, tenantId, principalId, principalSecret));
            }

            return(null);
        }
Ejemplo n.º 28
0
        internal StorageConnectionString GetConnectionString(
            SharedAccessSignatureCredentials credentials = default,
            bool includeEndpoint = true)
        {
            credentials ??= GetAccountSasCredentials();
            if (!includeEndpoint)
            {
                return(TestExtensions.CreateStorageConnectionString(
                           credentials,
                           TestConfigDefault.AccountName));
            }

            (Uri, Uri)fileUri = StorageConnectionString.ConstructFileEndpoint(
                Constants.Https,
                TestConfigDefault.AccountName,
        public void ExportKey()
        {
            var accountKeyString = "abc2564=";
            var accountString    = "BlobEndpoint=http://blobs/;AccountName=test;AccountKey=" + accountKeyString;
            var account          = StorageConnectionString.Parse(accountString);
            var accountAndKey    = (SharedKeyCredentials)account.Credentials;
            var key = accountAndKey.ExportBase64EncodedKey();

            Assert.AreEqual(accountKeyString, key);

            var keyBytes         = accountAndKey.AccountKeyValue;
            var expectedKeyBytes = Convert.FromBase64String(accountKeyString);

            TestHelper.AssertSequenceEqual(expectedKeyBytes, keyBytes);
        }
 /*
  * If ContinueOnError argument is 'true', return the exception else nope.
  */
 private void DeleteBlobFromAzureStorage(CodeActivityContext context)
 {
     try {
         AzureParamHelper azureStorageHelper = new AzureParamHelper(StorageConnectionString.Get(context), StorageBlobContainer.Get(context));
         IsDeleted.Set(context, AzureHelper.DeleteBlobFromAzureStorage(BlobReference.Get(context)));
     } catch (Exception ex) {
         if (Convert.ToBoolean((int)ContinueOnError))
         {
         }
         else
         {
             throw ex;
         }
     }
 }