Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more

Per Bjurström
Apr 10, 2015
  9191
(3 votes)

Uploading blobs to Azure Storage with PowerShell

When uploading media in EPiServer the binary data are stored in a system called blob providers. By default media are stored on disk in a folder located at <path_to-site>\App_Data\blobs. Moving all those blobs to Azure is just one line of code in the Azure PowerShell console (just make sure the current directory is the blobs-folder):

ls -File -Recurse | Set-AzureStorageBlobContent -Container mycontainer

If you have not used Azure PowerShell before you might want to read the getting started. To store blobs in Azure (you don't need to run the site in Azure to do this) install the EPiServer.Azure package and change blob provider in web.config:

    <blob defaultProvider="azureblobs">
      <providers>
        <add name="azureblobs" type="EPiServer.Azure.Blobs.AzureBlobProvider,EPiServer.Azure"
              connectionStringName="EPiServerAzureBlobs" container="mycontainer"/>
      </providers>
    </blob>

And then add the connection string:

  <connectionStrings>
    <add name="EPiServerAzureBlobs" connectionString="DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=abcdefghij" />
  </connectionStrings>

Screenshot:

Image AzurePowershellCapture.PNG

There is also a scheduled job on NuGet called EPiCode.BlobConverter that supports uploading to any blob provider if you prefer having an actual user interface ;-)

Apr 10, 2015

Comments

Apr 14, 2015 11:44 AM

Good stuff. How did you authenticate yourself? I used an AzureStorageContext and passed it as a parameter in the given command. Like this:

#log in
Add-AzureAccount
#Create context
$myContext = New-AzureStorageContext -StorageAccountName $MyName -StorageAccountKey $MyKey
#get files
ls -File -Recurse | Set-AzureStorageBlobContent -Container $mycontainer -Context $myContext

Worked like a charm.

Apr 14, 2015 01:40 PM

Great. If I remember correctly I used this command:

Set-AzureSubscription -SubscriptionName "MySubscription" -CurrentStorageAccountName "MyStorageAccount"

Apr 14, 2015 01:42 PM

And before that Import-AzurePublishSettingsFile to get the credentials..

valdis
valdis Nov 2, 2015 10:13 PM

Great success! Thanks Per. Old post - but helpful!

Please login to comment.
Latest blogs
COGNITIVE_SERVICE_TRANSLATE_ERROR

COGNITIVE_SERVICE_TRANSLATE_ERROR

Tomas Hensrud Gulla | Mar 19, 2025 |

Secure Your CMS: A Guide to the OptiAccess Restrictor Add-on

The OptiAccess Restrictor add-on enhances CMS security by preventing unauthorized access, allowing IP whitelisting.

Francisco Quintanilla | Mar 18, 2025 |

Optimizely CMS Developer Tools for macOS

Running Optimizely CMS on macOS presents unique challenges, as the platform was traditionally primarily designed for Windows environments. However,...

Tomek Juranek | Mar 15, 2025

Removing a Segment from the URL in Optimizely CMS 12 using Partial Routing

Problem Statement In Optimizely CMS 12, dynamically generated pages inherit URL segments from their container pages. However, in certain cases, som...

Adnan Zameer | Mar 14, 2025 |

Optimizely Configured Commerce and Spire CMS - Figuring out Handlers

I recently entered the world of Optimizely Configured Commerce and Spire CMS. Intriguing, interesting and challenging at the same time, especially...

Ritu Madan | Mar 12, 2025

Another console app for calling the Optimizely CMS REST API

Introducing a Spectre.Console.Cli app for exploring an Optimizely SaaS CMS instance and to source code control definitions.

Johan Kronberg | Mar 11, 2025 |