Example #1
0
        static bool SendJsonToStorage(CloudBlobClient blobClient, string fullText, string timeStamp)
        {
            BlobContinuationToken continuationToken = null;
            BlobResultSegment     resultSegment     = null;

            try
            {
                //Convert the unix timestamp to a date
                DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
                dtDateTime = dtDateTime.AddSeconds(Double.Parse(timeStamp));
                String outputPath = String.Format(@"logs/post/{0}/{1}/{2}", dtDateTime.Year, dtDateTime.Month, dtDateTime.Day);

                // Retrieve reference to a previously created container
https:          //pcldevbgwilkinson01.blob.core.windows.net/sensor-hub/logs/pre/2018/04/06/0_8b385536905846c68aa7a3e4e476200b_1.json
                CloudBlobContainer container = blobClient.GetContainerReference("sensor-hub");
                resultSegment = container.ListBlobsSegmented(outputPath, true, BlobListingDetails.All, 1000, continuationToken, null, null);

                if (resultSegment.Results.Count() == 1)
                {
                    fullText = Environment.NewLine + fullText;
                    CloudAppendBlob blob = (CloudAppendBlob)resultSegment.Results.First();
                    blob.AppendText(fullText);
                }
                else
                {
                    CloudAppendBlob blob = container.GetAppendBlobReference(outputPath + "/" + Guid.NewGuid() + ".json");
                    blob.UploadText(fullText);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Failue uploading the blob: " + e.Message);
                return(false);
            }

            return(true);
        }
            public TestFixture()
            {
                RandomNameResolver   nameResolver      = new RandomNameResolver();
                JobHostConfiguration hostConfiguration = new JobHostConfiguration()
                {
                    NameResolver = nameResolver,
                    TypeLocator  = new FakeTypeLocator(typeof(BlobBindingEndToEndTests)),
                };

                Config = hostConfiguration;

                StorageAccount = CloudStorageAccount.Parse(hostConfiguration.StorageConnectionString);
                CloudBlobClient blobClient = StorageAccount.CreateCloudBlobClient();

                BlobContainer = blobClient.GetContainerReference(nameResolver.ResolveInString(ContainerName));
                Assert.False(BlobContainer.Exists());
                BlobContainer.Create();

                OutputBlobContainer = blobClient.GetContainerReference(nameResolver.ResolveInString(OutputContainerName));

                CloudBlobContainer pageBlobContainer = blobClient.GetContainerReference(nameResolver.ResolveInString(PageBlobContainerName));

                Assert.False(pageBlobContainer.Exists());
                pageBlobContainer.Create();

                CloudBlobContainer hierarchicalBlobContainer = blobClient.GetContainerReference(nameResolver.ResolveInString(HierarchicalBlobContainerName));

                Assert.False(hierarchicalBlobContainer.Exists());
                hierarchicalBlobContainer.Create();

                CloudBlobContainer appendBlobContainer = blobClient.GetContainerReference(nameResolver.ResolveInString(AppendBlobContainerName));

                Assert.False(appendBlobContainer.Exists());
                appendBlobContainer.Create();

                Host = new JobHost(hostConfiguration);
                Host.Start();

                // upload some test blobs
                CloudBlockBlob blob = BlobContainer.GetBlockBlobReference("blob1");

                blob.UploadText(TestData);
                blob = BlobContainer.GetBlockBlobReference("blob2");
                blob.UploadText(TestData);
                blob = BlobContainer.GetBlockBlobReference("blob3");
                blob.UploadText(TestData);
                blob = BlobContainer.GetBlockBlobReference("file1");
                blob.UploadText(TestData);
                blob = BlobContainer.GetBlockBlobReference("file2");
                blob.UploadText(TestData);
                blob = BlobContainer.GetBlockBlobReference("overwrite");
                blob.UploadText(TestData);

                // add a couple hierarchical blob paths
                blob = hierarchicalBlobContainer.GetBlockBlobReference("sub/blob1");
                blob.UploadText(TestData);
                blob = hierarchicalBlobContainer.GetBlockBlobReference("sub/blob2");
                blob.UploadText(TestData);
                blob = hierarchicalBlobContainer.GetBlockBlobReference("sub/sub/blob3");
                blob.UploadText(TestData);
                blob = hierarchicalBlobContainer.GetBlockBlobReference("blob4");
                blob.UploadText(TestData);

                byte[] bytes     = new byte[512];
                byte[] testBytes = Encoding.UTF8.GetBytes(TestData);
                for (int i = 0; i < testBytes.Length; i++)
                {
                    bytes[i] = testBytes[i];
                }
                CloudPageBlob pageBlob = pageBlobContainer.GetPageBlobReference("blob1");

                pageBlob.UploadFromByteArray(bytes, 0, bytes.Length);
                pageBlob = pageBlobContainer.GetPageBlobReference("blob2");
                pageBlob.UploadFromByteArray(bytes, 0, bytes.Length);

                CloudAppendBlob appendBlob = appendBlobContainer.GetAppendBlobReference("blob1");

                appendBlob.UploadText(TestData);
                appendBlob = appendBlobContainer.GetAppendBlobReference("blob2");
                appendBlob.UploadText(TestData);
                appendBlob = appendBlobContainer.GetAppendBlobReference("blob3");
                appendBlob.UploadText(TestData);
            }