Preview:
-------------------------------CPLImplimented code-------------------------------------------------
  using Microsoft.WindowsAzure.Storage;
Using Microsoft.WindowsAzure.Storage.Blob;
using System.IO;
using Microsoft.Dynamics.AX.Framework.FileManagement;
public final class CPLAzureBlobStorageUtility
{
    public static boolean upLoadFilebyStream(System.IO.Stream memoryStream, str _fileName)  //
    {
        boolean             ret = false;
        ProdParameters      prodParameters = ProdParameters::find();
        String255           connectionString = ProdParameters.CPLAzureBlobConnectionStr; //"DefaultEndpointsProtocol=https;AccountName=cpltest;AccountKey=JqrWct3zc10YGDUTefsi+sEj0OfsAjvpje3je4GLWhxKKfd3Iybn8Q7oqdW8F+V+O80/DLDh0Ox0+ASt6ifb4g==;EndpointSuffix=core.windows.net";
        String50            containerName = ProdParameters.CPLDrumFileExportContainerName; //"geodisxml";
        str                 errorMsg;
       
        //Validation-start
        if(connectionString == '')
           errorMsg +='Azure Bolb connection string is missing in the production control parameters\n';
        if(containerName == '')
            errorMsg +='Azure Bolb container name is missing in the production control parameters\n';
        if(_fileName == '')
            errorMsg +='Drum label file name is missing';
        if(errorMsg !='')
        {
            throw error(errorMsg);
            return ret;
        }

        //connect to blob storage-start 
        CloudStorageAccount     cloudStorageAccount = CloudStorageAccount::Parse(connectionString);
        CloudBlobClient         cloudBlobClient     = cloudStorageAccount.CreateCloudBlobClient();
        CloudBlobContainer      cloudBlobContainer  = cloudBlobClient.GetContainerReference(containerName);
        cloudBlobContainer.CreateIfNotExistsAsync();

        //Upload File to blob container-start
     // Access to sub folders we can use cloudBolbDirectory 
     // CloudBlobDirectory      cloudBlobDirectory;
     // cloudBlobDirectory  = _cloudBlobContainer.GetDirectoryReference("My Folder");
     // CloudBlockBlob      = cloudBlobDirectory.GetBlockBlobReference("File.Txt");

        CloudBlockBlob          cloudBlockBlob = cloudBlobContainer.GetBlockBlobReference(_fileName);
        memoryStream.Seek(0, System.IO.SeekOrigin::Begin);
        cloudBlockBlob.UploadFromStream(memoryStream, null, null, null);
        cloudBlockBlob.FetchAttributes(null,null,null);
        BlobProperties          blobProperties = cloudBlockBlob.Properties;
  
        if(blobProperties.Length != 0)
        {
            info('File upload successful');
            ret = true;
        }
        return ret;
    }

}
-------------------------------Reference blob------------------------------------------------------
using Microsoft.WindowsAzure.Storage;
Using Microsoft.WindowsAzure.Storage.Blob;
using System.IO;
class TestAzureBlob 
{
    public static void main(Args _args)
    {
        TestAzureBlob       testAzureBlob = new TestAzureBlob();
        CloudBlobContainer  blobContainer;

        // Connecting container
        blobContainer = testAzureBlob.connectToAzureBlob();

        // Get's the file List
        testAzureBlob.getFilesList(blobContainer);// Way 1
        testAzureBlob.readTheFiles(blobContainer);// Way 2

        // Read the data in file
        testAzureBlob.readFileValue(blobContainer);

        // upload the file
        testAzureBlob.UploadFileToBlob(blobContainer);

        // move the file
        testAzureBlob.moveTheFileFromOneFolderToAnotherFolder(blobContainer);

        // delete the file
        testAzureBlob.deleteFileFromFolder(blobContainer);
    }
}


// Connect to Blob:

    public CloudBlobContainer connectToAzureBlob()
    {
        CloudBlobClient 	cloudBlobClient;
        CloudBlobContainer	cloudBlobContainer;
        CloudStorageAccount cloudStorageAccount;
  
        cloudStorageAccount = CloudStorageAccount::Parse("Azure Blob Connection String");
        // Example :
        // ("DefaultEndpointsProtocol = https;
        // AccountName = 'AccountName';AccountKey = 'AccountKey';EndpointSuffix=core.windows.net");
        cloudBlobClient 	= cloudStorageAccount.CreateCloudBlobClient();
        cloudBlobContainer 	= cloudBlobClient.GetContainerReference("mycontainer");
  
        Info(cloudBlobContainer.Name);

        return cloudBlobContainer;
    }

  //  Get the files List:
 //   Way 1:

     public void getFilesList(CloudBlobContainer _cloudBlobContainer)
    {
        // Directory of blob container
        CloudBlobDirectory  cloudBlobDirectory;
        container           fileCon;

        // Folder Path
        cloudBlobDirectory = _cloudBlobContainer.GetDirectoryReference("My Folder");

        System.Collections.IEnumerable lstEnumarable = cloudBlobDirectory.ListBlobs(false, 0, null, null);
        System.Collections.IEnumerator lstEnumarator = lstEnumarable.GetEnumerator();

        List filenames = new List(Types::String);

        while(lstEnumarator.MoveNext())
        {
            IListBlobItem item = lstEnumarator.Current;

            if (item is CloudBlockBlob)
            {
                CloudBlockBlob      blob = item;

                blob.FetchAttributes(null, null, null);

                fileCon = str2con(blob.name, "/");

                filenames.addStart(conPeek(filecon, conLen(filecon)));

                info(strFmt("File : %1", conPeek(filecon, conLen(filecon))));
            }
        }
    }

//    Way 2:

    public void readTheFiles(CloudBlobContainer _cloudBlobContainer)
    {
        System.Collections.IEnumerable lstEnumarable = _cloudBlobContainer.ListBlobs(null, false, 0, null, null);
        System.Collections.IEnumerator lstEnumarator = lstEnumarable.GetEnumerator();

        List filenames = new List(Types::String);
        while (lstEnumarator.MoveNext())
        {
            IListBlobItem item = lstEnumarator.Current;

            if (item is CloudBlockBlob)
            {
                CloudBlockBlob blob = item;
                System.IO.StreamReader  reader = new System.IO.StreamReader(blob.OpenRead(null, null, null));
                Info(reader.ReadToEnd());
            }
        }
    }

  //  Read the file content:

    public void readFileValue(CloudBlobContainer _cloudBlobContainer)
    {
        CloudBlobDirectory  cloudBlobDirectory  = _cloudBlobContainer.GetDirectoryReference("My Folder");
        CloudBlockBlob      blob                = cloudBlobDirectory.GetBlockBlobReference("File");

        System.IO.Stream memory = blob.openRead(null, null, null);

        // Read the content
        System.IO.StreamReader streamReader = new System.IO.StreamReader(memory);

        // Read each line
        str  strRecord = streamReader.ReadLine();

        // while (!System.String::IsNullOrEmpty(strRecord))
        {
            try
            {
                container   conRecord = str2con_RU(strRecord, ',');

                info(conPeek(conRecord, 1));

                info(conPeek(conRecord, 2));

                strRecord = streamReader.ReadLine();
            }
            catch
            {
                throw error("Message");
            }
        
        }
    }


  //  Upload the file:

     public void UploadFileToBlob(CloudBlobContainer _cloudBlobContainer)
    {
        CloudBlobDirectory      cloudBlobDirectory;
        CloudBlockBlob          CloudBlockBlob;
        System.Byte[]           reportBytes = new System.Byte[0]();

        // File path
        cloudBlobDirectory  = _cloudBlobContainer.GetDirectoryReference("My Folder");
        CloudBlockBlob      = cloudBlobDirectory.GetBlockBlobReference("File.Txt");

        // ---------------- or ----------------
        CloudBlockBlob      = _cloudBlobContainer.GetBlockBlobReference("File.Txt");

        // Encode
        System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding();
        reportBytes = enc.GetBytes("YOUR XML STRING/TEXT or Data in file");
        System.IO.MemoryStream stream = new System.IO.MemoryStream(reportBytes);
 
        // upload stream
        CloudBlockBlob.UploadFromStream(stream, null, null, null);
    }

  //  Move the file:

    public void moveTheFileFromOneFolderToAnotherFolder(CloudBlobContainer _cloudBlobContainer)
    {
        CloudBlobDirectory      sourceCloudBlobDirectory;
        CloudBlobDirectory      destinationCloudBlobDirectory;
        CloudBlockBlob          sourceCloudBlockBlob;
        CloudBlockBlob          destinationCloudBlockBlob;

        sourceCloudBlobDirectory        = _cloudBlobContainer.GetDirectoryReference("My Folder");
        destinationCloudBlobDirectory   = _cloudBlobContainer.GetDirectoryReference("My Folder 2");

        sourceCloudBlockBlob            = sourceCloudBlobDirectory.GetBlockBlobReference("File1.Txt");
        destinationCloudBlockBlob       = destinationCloudBlobDirectory.GetBlockBlobReference("File1.Txt");

        // Upload the file to destination
        destinationCloudBlockBlob.UploadFromStream(sourceCloudBlockBlob.OpenRead(null, null, null), null, null, null);
    }
    Delete the file:

    public void deleteFileFromFolder(CloudBlobContainer _cloudBlobContainer)
    {
        CloudBlobDirectory      sourceCloudBlobDirectory;
        CloudBlockBlob          sourceCloudBlockBlob;

        sourceCloudBlobDirectory        = _cloudBlobContainer.GetDirectoryReference("My Folder");
        sourceCloudBlockBlob            = sourceCloudBlobDirectory.GetBlockBlobReference("File2.Txt");

        // Delete file
        sourceCloudBlockBlob.delete(0, null, null, null);
    }
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter