Загрузка файла в учетную запись Azure Storage из D365FO

Category: Статьи Post Date: 25.08.2020

В этой статье я расскажу, как мы можем загрузить файл в учетную запись Azure Storage из D365FO. Обычно мы используем учетную запись Azure для хранения объектов, которые необходимо дополнительно обработать и сохранить в облаке.

Смотрите ниже код с пояснением.

Пояснения по исходному коду (1.1):


• Получение учетных данных Azure из таблицы параметров поставщиков.

Настройка подключения для доступа к учетной записи Azure Storage

Инициализация облачного файлового клиента, который используется для настройки и выполнения запросов к файловой службе

Инициализация общего доступа к файлам в облаке.

Проверка, существует ли общий доступ к файлам.

Пояснения по исходному коду (1.2):

Инициализация каталога файлов в облаке, который содержит каталоги и файлы.

Получение ссылку на виртуальный каталог blob объектов

Инициализация файла в облаке.

Загрузка потока в файл. Если файл уже существует в службе, он будет перезаписан.

Полный исходный код (метод):

/// <summary>

/// Upload file to azure file storage

/// </summary>

/// <param name = “_fileContentInStream”>File stream</param>

/// <parmam name = “_folderName”>Folder where file saves</param>

/// <param name = “_fileName”>File name</param>

/// <returns>True or False</returns>

public static boolean uploadFileToAzureFileStorage(System.IO.Stream _fileContentInStream , str _folderName, str _fileName)

{

try

{

//Получение учетных данных Azure из таблиц параметров поставщиков (в моем случае)

VendParameters  vendParameter = VendParameters::find();

//Установка соединения

Microsoft.WindowsAzure.Storage.Auth.StorageCredentials storageCredentials = new Microsoft.WindowsAzure.Storage.Auth.StorageCredentials(“Your storage account name”,

“Your storage account access key”);

Microsoft.WindowsAzure.Storage.CloudStorageAccount storageAccount = new Microsoft.WindowsAzure.Storage.CloudStorageAccount(storageCredentials, true);

// Представление файловой службы Microsoft Azure на стороне клиента

// Этот клиент используется для настройки и выполнения запросов к файловой службе.

Microsoft.WindowsAzure.Storage.File.CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

 

// Предоставить общий ресурс в файловой службе Microsoft Azure.

Microsoft.WindowsAzure.Storage.File.CloudFileShare share = fileClient.GetShareReference(“Your file share name”);

// Если не существует, выдается ошибка

if (!share.Exists(null, null))

{

throw error(strFmt(“File share not exists.”));

}

// Представить каталог, который содержат каталоги, и каталоги с файлами.

Microsoft.WindowsAzure.Storage.File.CloudFileDirectory cloudDir = share.GetRootDirectoryReference();

container conFolders = str2con(_folderName, ‘/’);

for (int i = 1; i <= conlen(conFolders); i++)

{

str folderName = conpeek(conFolders, i);

//Gets a reference to a virtual blob directory beneath this container.

// Получить ссылку на каталог с blob объектами

cloudDir = cloudDir.GetDirectoryReference(folderName);

cloudDir.CreateIfNotExists(nullnull);

}

// Представить файл в файловой службе Microsoft Azure.

Microsoft.WindowsAzure.Storage.File.CloudFile file = cloudDir.GetFileReference(_fileName);

// Необходимо задать позицию для потока

if (_fileContentInStream.CanSeek)

{

_fileContentInStream.Seek(0, System.IO.SeekOrigin::Begin);

}

// Загружает поток в файл. Если файл уже существует в службе, он будет перезаписан

file.UploadFromStream(_fileContentInStream, nullnullnull);

return true;

}

catch

{

return false;

}

}

Это все, что вам нужно сделать, чтобы загрузить файлы в учетную запись Azure Storage.

Исходный текст статьи доступен по ссылке.

Подписывайтесь на канал @d365neti в Telegram

Подписаться

Добавить комментарий