В этой статье я расскажу, как мы можем загрузить файл в учетную запись 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(null, null); } // Представить файл в файловой службе Microsoft Azure. Microsoft.WindowsAzure.Storage.File.CloudFile file = cloudDir.GetFileReference(_fileName); // Необходимо задать позицию для потока if (_fileContentInStream.CanSeek) { _fileContentInStream.Seek(0, System.IO.SeekOrigin::Begin); } // Загружает поток в файл. Если файл уже существует в службе, он будет перезаписан file.UploadFromStream(_fileContentInStream, null, null, null); return true; } catch { return false; } } |
Это все, что вам нужно сделать, чтобы загрузить файлы в учетную запись Azure Storage.
Исходный текст статьи доступен по ссылке.
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.