Skip to the content

Umbraco Media in Azure Storage auslagern

In Umbraco werden alle Medien im media-Verzeichnis abgelegt. Aus Entwicklersicht macht es Sinn das Mediaverzeichnis auszulagern. UmbracoFileSystemProviders.Azure ist ein Dienst der Azure Blob Storage IFileSystem für Umbraco anbietet und statische Dateien in einer Mediathek in die Cloud bereitstellt.

Für Visual Studio-Entwickler können Sie auch das NuGet Paket verwenden. Wenn Sie NuGet verwenden, aber den Vorteil des Umbraco-Konfigurationsassistenten wünschen, können Sie zuerst das Umbraco-Paket installieren, den Konfigurationsassistenten verwenden und dann das NuGet Paket installieren. Die Konfiguration wird beibehalten.

Schritt 1: Erstellen Sie einen Azure Blob-Container
Melden Sie sich im https://portal.azure.com/ an und suchen Sie nach «Speicherkonto». Wählen Sie den Blob-Service aus und erstellen Sie einen Container, den Sie benötigen.

Schritt 2: Installieren Sie das Umbraco File System Providers Package in Ihrer Umbraco Umgebung


Melden Sie sich im Umbraco BackOffice an und gehen Sie zu «Entwickler-»/«Paket». Suchen Sie nach «UmbracoFileSystemProviders» und wählen Sie das «UmbracoFileSystemProviders.Azure» Paket aus und installieren es. Wenn Sie NuGet Paket auch im Nachhinein installieren wollen, starten Sie Umbraco aus Ihrem Visual Studio auf dem lokalen System auf, um sicherzustellen, dass alle Konfigurationen an der gleichen Stelle getätigt werden.

Konfigurieren Sie den Umbraco File System Provider mit dem Kontonamen und den Verbindungsstring-Informationen aus dem zuvor erstellten Azure Blog-Container «media».


ContainerName = media
RootUrl = https://[myAccountName] .blob.core.windows.net/
ConnectionString = DefaultEndpointsProtocol = https; AccountName = [myAccounName]; AccountKey = [myAccountKey]
MaxSays=365
UseDefaults = True
UsePrivateContainer = Falsch

Nach Schritt 2 sollten Sie in der Lage sein, neue Bilder in Umbraco hochzuladen, und sobald sie gespeichert sind, werden diese Bilder im Azure Blob-Container angezeigt. Die folgenden Schritte zeigen Ihnen, wie Sie bestehende Bilder hochladen und wie Sie das NuGet Paket in Ihrem Umbraco Projekt installieren und konfigurieren können.

Schritt 3: Installieren Sie «Microsoft Azure Storage Explorer» und laden Sie die «media» Inhalte hoch

Gehen Sie auf die Website von Azure https://azure.microsoft.com/en-us/features/storage-explorer/ und laden Sie den Azure Storage Explorer auf Ihrem lokalen System herunter und installieren diesen.

Starten Sie den Azure Storage Explorer und laden Sie die «\media\*.*» in den «media» Container

 

Schritt 4: Installieren Sie das «UmbracoFileSystemProviders.Azure» NuGet Paket

In Visual Studio auf dem Umbraco-Projekt wählen Sie die «NuGet Pakete verwalten ...» Menü aus. Suchen Sie im Paketmanager nach «UmbracoFileSystemProviders.Azure» und installieren Sie das Paket. Oder wenn Sie es vorziehen, können Sie die folgende Kommandozeile in der Paketmanager-Konsole verwenden.

PM> Install-Package UmbracoFileSystemProviders.Azure

 

Schritt 5: Prüfen Sie Web.config und FileSystemProviders.config

Überprüfen Sie den Abschnitt FileSystemProviders im Web.config, und wo sich die zugehörigen Konfigurationen befinden.

<configuration>
<umbracoConfiguration>
<FileSystemProviders configsource=""configFileSystemProviders.config""></FileSystemProviders>

Öffnen Sie die «FileSystemProviders.config» Datei und überprüfen Sie die Werte

<FileSystemProviders>
<!-- Media -->
<Provider alias="media" type="Our.Umbraco.FileSystemProviders.Azure.AzureBlobFileSystem, Our.Umbraco.FileSystemProviders.Azure">
<Parameters>
<add key="containerName" value="media"/>
<add key="rootUrl" value=" [yourAzureAccountName]"/>
<add key="connectionString" value="DefaultEndpointsProtocol=https;AccountName=[yourAzureAccountName];AccountKey=[yourAzureAccountKey]"/>
<!--
Optional configuration value determining the maximum number of days to cache items in the browser.
Defaults to 365 days.
-->
<add key="maxDays" value="365"/>
<!--
When true this allows the VirtualPathProvider to use the deafult "media" route prefix regardless
of the container name.
-->
<add key="useDefaultRoute" value="true"/>
<!--
When true blob containers will be private instead of public what means that you can't access the original blob file directly from its blob url.
-->
<add key="usePrivateContainer" value="false"/>
</Parameters>
</Provider>

In der obigen Konfiguration sollte der Wert value = "media" mit dem Namen Ihres Azure Blob-Containers übereinstimmen.

Autor

Urs Rüegg

Urs Passion ist es komplexe und multinationale Projekte zu liefern. Seit 2000 wurden über 25 CRM-, 12 Entwicklungs- und 8 Infrastruktur-Projekte geliefert.

In der Freizeit liebt Urs die Gaumenfreuden aus aller Herren Ländern zu entdecken und frei nach Aristoteles und Plutarch zu geniessen. 

comments powered by Disqus

Team Rüegg

Ankenbüel 7
8126 Zumikon

Our motivation

We are a Family with shared principles and passions.