Este es un breve ejemplo de como subir archivos a un Azure Storage utilizando código de X++
Debes tener en cuenta que necesitaras la URL para la conexión al container, así como la llave de acceso.
Puntos a tener en cuenta:
- Utilice claves de acceso para autenticar sus aplicaciones y realizar solicitudes a su cuenta de almacenamiento de Azure (Manage account access keys – Azure Storage | Microsoft Docs).
- Almacene sus claves de acceso de forma segura, por ejemplo, con Azure Key Vault, y no las comparta.
- Recomendamos regenerar sus claves de acceso con regularidad.
using BlobStorage = Microsoft.WindowsAzure.Storage;
using Microsoft.Dynamics.AX.Framework.FileManagement;
using System.IO;
class SavFileAzureBlobStorageJob
{
public static void main(Args _args)
{
CommaStreamIo io = CommaStreamIo::constructForWrite();
CustTable custTable;
const str connectionString = "YOUR_CONNECTION_STRING";
const str containerName = "YOUR_CONTAINER_NAME";
const str fileName = "customers.csv";
BlobStorage.CloudStorageAccount storageAccount = BlobStorage.CloudStorageAccount::Parse(connectionString);
BlobStorage.Blob.CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
BlobStorage.Blob.CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName);
blobContainer.CreateIfNotExistsAsync();
io.writeExp(['Account Number', 'Customer' , 'Currency', 'Data Area']);
while select custTable
where custTable.DataAreaId == 'USMF'
{
io.writeExp([custTable.AccountNum, custTable.name(), custTable.Currency, custTable.DataAreaId]);
}
BlobStorage.Blob.CloudBlockBlob blockBlob = blobContainer.GetBlockBlobReference(fileName);
if(blockBlob && !blockBlob.Exists(null,null))
{
System.IO.Stream stream = iO.getStream();
stream.Position = 0;
System.IO.StreamReader reader = new System.IO.StreamReader(stream);
str csvFileContent = reader.ReadToEnd();
if(csvFileContent)
{
blockBlob.UploadText(csvFileContent,null,null,null,null);
blockBlob.FetchAttributes(null,null,null);
BlobStorage.Blob.BlobProperties blobProperties = blockBlob.Properties;
if(blobProperties.Length != 0)
{
info('File upload successful');
}
}
}
else
{
info('File already exits');
}
}
}
En el siguiente enlace, el cliente puede encontrar la documentación de cómo crear una cuenta de almacenamiento de Azure en su única cuenta de Azure (suscripción Pay as You Go) o AIS