简体   繁体   中英

Migrating EPiserver media blobs to Azure Storage Account

I am currently researching into migrating the EPiServer 11.10.1 media blobs from a Windows DFS Share to an Azure Storage Account.

The configuration tried is as follows:

web.config (Note: only relevant sections are shown)

<dependentAssembly>
<assemblyIdentity name="EPiServer.Azure" publicKeyToken="8fe83dea738b45b7" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-9.4.4.0" newVersion="9.4.4.0" />
</dependentAssembly>

<episerver.framework updateDatabaseSchema="false">
<clientResources debug="false" />
<appData basePath="" />
<scanAssembly forceBinFolderScan="true" />

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

connectionStrings.config (Note: only relevant sections are shown)

<connectionStrings>
<clear />
<add name="EPiServerAzureBlobs" connectionString="DefaultEndpointsProtocol=https;AccountName=storage00001;AccountKey=NuJBkcpuCbPKH+lcw65OwELkJ1nptJ7CY2Hn4MqNwqwL4WY4C3caSSSJYgH91J6MH9qZPPOOSbAzFZrNk8eIHt6PA==" />
</connectionStrings>

When starting the site, the following error is shown in the logs:

(Note: only relevant sections are shown)

2019-02-19 13:12:41,875 [94] [94a2e50f-06c6-4ddc-a6f7-2d1c43b0735d] ERROR 
EPiServer.Global: Unhandled exception in ASP.NET
Microsoft.WindowsAzure.Storage.StorageException: The remote server returned 
an error: (404) Not Found. ---> System.Net.WebException: The remote server 
returned an error: (404) Not Found.
at System.Net.HttpWebRequest.GetResponse()
Request Information
RequestID:5e731c27-d01e-00cc-4254
RequestDate:Tue, 19 Feb 2019 13:12:41 GMT
StatusMessage:The specified blob does not exist.

I am unable to see an error which would be causing the media blob (image) not to be displayed.

The following has been tried already but to no avail:

  • Permissions: Azure Storage Account - Blobs - Contain (anonymous read access for containers and blobs)
  • Permissions: The media blob (images) are accessible in a browser independent of the EpiServer platform
  • Microsoft Support has confirmed there are no known issues affecting the Storage Account

If this makes a difference, EpiServer itself is running on a dedicated VM (IaaS) and using Azure SQL for databases.

  • Does appData basePath="" need to contain a value to work with an Azure Storage Account?

Any suggestions on what might be (or what I am doing) wrong are welcome.

Thank you.

Thank you for your proposed answer Ted but the solution was more straightforward. I posted a similar question to the official EPiServer forums:

https://world.episerver.com/forum/developer-forum/-Episerver-75-CMS/Thread-Container/2019/2/migrating-to-azure-storage-accounts-media-blob---image---not-displayed-in-browser/

It was simply a matter of adding the suffix to the connection string:

;EndpointSuffix=core.windows.net

However, I did read similar suggestions to what you answered whilst researching, so I think it will be of benefit to users Googling a similar problem for your answer to be upvoted.

The 404 is because you've changed the blob provider without migrating the actual blobs. Thus, when an existing blob (referenced in the Episerver database) is requested, it is no longer found.

You may also be interested in the blob converter package mentioned here: How to move blobs from App_Data folder of episerver cms site to azure blob storage hosted in azure cloud

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM