{"id":1474,"date":"2024-09-13T15:39:13","date_gmt":"2024-09-13T14:39:13","guid":{"rendered":"https:\/\/france.magicsoftware.com\/blog\/?p=1474"},"modified":"2025-12-14T16:15:07","modified_gmt":"2025-12-14T15:15:07","slug":"azure-storage-magic-xpi-native-connector","status":"publish","type":"post","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/azure-storage-magic-xpi-native-connector\/","title":{"rendered":"Azure Storage &#8211; Magic xpi Native connector"},"content":{"rendered":"\n<p class=\"has-medium-font-size\"><strong>Goal <\/strong>: Handle Azure Blob Container with a Native Magic xpi connector<\/p>\n\n\n\n<p><strong>1\/Prerequisites<\/strong><\/p>\n\n\n\n<p>Install Microsoft Azure Storage Explorer (* optional) to check the connection with your Azure EndPoint &#8211; Account Name &#8211; Account Key<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"780\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native1-1024x780.png\" alt=\"\" class=\"wp-image-1480\" style=\"width:601px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native1-1024x780.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native1-300x229.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native1-768x585.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native1.png 1160w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>All credentials (AccountName, Account Key) can be found in \u00ab\u00a0Primary Connection String\u00a0\u00bb (\u00ab\u00a0Chaine de connexion principale\u00a0\u00bb in french :-))<\/p>\n\n\n\n<p>2\/ Download the connector for Azure Storage (Magic xpi 4.14)<\/p>\n\n\n\n<p>The Connector is available here (for Magic xpi 4.14) : <a href=\"https:\/\/france.magicsoftware.com\/share\/azurestorage.zip\" title=\"\">https:\/\/france.magicsoftware.com\/share\/azurestorage.zip<\/a><\/p>\n\n\n\n<p>(Please contact me to get the source)<\/p>\n\n\n\n<p>Unzip the connector inside &lt;Magic xpi Install directory&gt;\\Runtime\\addon_connectors<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"378\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native3.png\" alt=\"\" class=\"wp-image-1484\" style=\"width:567px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native3.png 909w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native3-300x125.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native3-768x319.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/figure>\n\n\n\n<p>3\/ Define an Azure Storage Magic xpi Resource in your project and clic on the Button Validate<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"511\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native2-1024x511.png\" alt=\"\" class=\"wp-image-1482\" style=\"width:698px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native2-1024x511.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native2-300x150.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native2-768x383.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native2.png 1448w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>4\/ Let&rsquo;s build a flow with 6 steps in this order<\/p>\n\n\n\n<p>Create container=&gt;Upload Object =&gt; Download Object =&gt; Get BlobsList =&gt; Delete Blob =&gt; Delete Container<\/p>\n\n\n\n<p>5\/ Drag And Drop the Connector and configure it for the first method \u00ab\u00a0Create Container\u00a0\u00bb<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"498\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native4-1024x498.png\" alt=\"\" class=\"wp-image-1488\" style=\"width:722px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native4-1024x498.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native4-300x146.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native4-768x374.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native4.png 1354w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Define 2 Flow variables (F.Response (Blob) and F.Success (Logical))<\/p>\n\n\n\n<p>Right clic to configure the connector, set Store Result In and Operation Success with your flow variables and click OK<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native5-1024x573.png\" alt=\"\" class=\"wp-image-1490\" style=\"width:576px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native5-1024x573.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native5-300x168.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native5-768x429.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native5.png 1100w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>The connector implements 7 methods<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"314\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native7-1024x314.png\" alt=\"\" class=\"wp-image-1496\" style=\"width:550px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native7-1024x314.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native7-300x92.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native7-768x236.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native7.png 1114w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>To create a container choose \u00ab\u00a0CreateCloudBlobContainer\u00a0\u00bb<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"424\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native6-1024x424.png\" alt=\"\" class=\"wp-image-1493\" style=\"width:501px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native6-1024x424.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native6-300x124.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native6-768x318.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native6.png 1123w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>6\/ Drag and drop another Azure Storage Connector and choose \u00ab\u00a0UploadFromFile\u00a0\u00bb method<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native8-1024x597.png\" alt=\"\" class=\"wp-image-1503\" style=\"width:582px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native8-1024x597.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native8-300x175.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native8-768x448.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native8.png 1088w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>(*) By setting blobname with the value folde1\/bb.txt then it will create a subfolder in azure storage<\/p>\n\n\n\n<p>7\/ Proceed in the same way for the following steps (DownloadToFile, GetBlobList, DeleteBlobInContainer, DeleteContainer)<\/p>\n\n\n\n<p>8\/ Response Messages are :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Container &lt;container name&gt; successfully created<\/li>\n\n\n\n<li>&lt;your filename&gt; successfully uploaded<\/li>\n\n\n\n<li>&lt;your blobname&gt; successfully downloaded to &lt;your localdirectory&gt;\\&lt;your localfilename&gt;.downloaded<\/li>\n\n\n\n<li>&lt;your blobs list&gt;<\/li>\n\n\n\n<li>&lt;your blobname&gt; deleted successfully<\/li>\n\n\n\n<li>Container &lt;container name&gt; deleted successfully<\/li>\n<\/ul>\n\n\n\n<p>if there is an error, the connector update C.Sys.ErrorCode with value 669 and C.SysErrorDescription.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"436\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native9-1024x436.png\" alt=\"\" class=\"wp-image-1511\" style=\"width:593px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native9-1024x436.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native9-300x128.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native9-768x327.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native9.png 1314w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>9\/ For DownloadFile method , File mode must be :<\/p>\n\n\n\n<p>2:create(if file exists, it is replaced) otherwise it creates a new file.<\/p>\n\n\n\n<p>10\/ You can use Log4net file to get some logs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"623\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native10-1024x623.png\" alt=\"\" class=\"wp-image-1513\" style=\"width:497px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native10-1024x623.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native10-300x182.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native10-768x467.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native10.png 1383w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"416\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native11-1024x416.png\" alt=\"\" class=\"wp-image-1516\" style=\"width:479px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native11-1024x416.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native11-300x122.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native11-768x312.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/09\/AZS_Native11.png 1050w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Goal : Handle Azure Blob Container with a Native Magic xpi connector 1\/Prerequisites Install Microsoft Azure Storage Explorer (* optional) to check the connection with your Azure EndPoint &#8211; Account Name &#8211; Account Key All credentials (AccountName, Account Key) can be found in \u00ab\u00a0Primary Connection String\u00a0\u00bb (\u00ab\u00a0Chaine de connexion principale\u00a0\u00bb in french :-)) 2\/ Download [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":249,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[31,93,4,28],"tags":[11,14],"class_list":["post-1474","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure","category-azure-storage","category-magic-xpi","category-microsoft","tag-azure","tag-magic-xpi"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/AZURE_STORAGE_1.png","_links":{"self":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1474","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=1474"}],"version-history":[{"count":41,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1474\/revisions"}],"predecessor-version":[{"id":2657,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/1474\/revisions\/2657"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media\/249"}],"wp:attachment":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=1474"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=1474"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=1474"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}