public async Task UsingAzureBlobs()
            {
                //Using the environment variable 'AzureWebJobsStorage' for storage authentication
                //AzureBlobs blobs = new AzureBlobs("samplecontainer");

                //Using literal connection string for authentication
                AzureBlobs blobs = new AzureBlobs("samplecontainer", "my_connection_string", null);

                //Creating "samplecontainer". Loading it if already exists.
                blobs.CreateOrLoadStructure();

                //Set this true to deactivate inner logs.
                blobs.LoggingDisabled = false;

                //Sending a blob to the container from an absolute path
                await blobs.UploadBlob("C:\\Users\\foo\\Desktop\\image.png", "wallpaper.png");

                //Sending a blob to the container from an relative path. In this case the name can be the same for both
                await blobs.UploadBlob("reports.json");

                //Downloading a blob as Strean
                Stream stream = await blobs.DownloadBlobAsStream("wallpaper.png");

                //Downloading a blob as a local file
                await blobs.DownloadBlobAsFile("wallpaper.png", "C:\\Users\\foo\\Desktop\\image-copy.png");
            }
Example #2
0
        public static void InitializeAzureStorage()
        {
            string storageConnectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
            string ocrQueueName            = RoleEnvironment.GetConfigurationSettingValue("OCRQueueName");
            string imageBlobContainerName  = RoleEnvironment.GetConfigurationSettingValue("ImageBlobContainerName");
            string ocrJobTableName         = RoleEnvironment.GetConfigurationSettingValue("OCRJobTableName");

            // Email queue and Text blob container won't be used in Web Role so we'll just pass nulls.
            // Sure, in this situation AzureQueues and AzureBlobs classes don't look like good design but let's keep it simple.
            // I don't want to use tons of interfaces, DI and statelessness and in a simple 1K LOC project like this.

            AzureQueues.Initialize(storageConnectionString, ocrQueueName, null);
            AzureBlobs.Initialize(storageConnectionString, imageBlobContainerName, null);
            AzureTables.Initialize(storageConnectionString, ocrJobTableName);
        }
Example #3
0
        private void InitializeAzureStorage()
        {
            Trace.TraceInformation("Initializing Azure Storage.");

            Trace.TraceInformation("Loading storage settings.");
            string storageConnectionString = RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString");
            string textBlobContainerName   = RoleEnvironment.GetConfigurationSettingValue("TextBlobContainerName");
            string emailQueueName          = RoleEnvironment.GetConfigurationSettingValue("EmailQueueName");
            string ocrJobTableName         = RoleEnvironment.GetConfigurationSettingValue("OCRJobTableName");

            Trace.TraceInformation("Initializing Blobs.");
            AzureBlobs.Initialize(storageConnectionString, null, textBlobContainerName);

            Trace.TraceInformation("Initializing Queues.");
            AzureQueues.Initialize(storageConnectionString, null, emailQueueName);

            Trace.TraceInformation("Initializing Tables.");
            AzureTables.Initialize(storageConnectionString, ocrJobTableName);
        }