2012-04-04 5 views
2

Ich bin ziemlich neu bei Azure und verwende Blob-Speicher, um einige Binärbilder zu speichern, aber ich kann nicht herausfinden, wie ich meine Azure Storage-Endpunkt-URLs programmatisch abrufen kann.Wie erhalte ich programmatisch meine Azure-Speicher-Endpunkt-URLs?

Ich versuche, einige Tags zu rendern, die korrekt lokal mit dem Simulator oder bei Bereitstellung in meiner Azure Live-Instanz gerendert werden.

So zum Beispiel wenn ich meine Website starten lokal würde es machen, wie:

<img src="http://127.0.0.1:10000/devstoreaccount1/uploads/image.jpg" /> 

und wenn es würde Azure bereitgestellt machen, wie:

<img src="http://example.blob.core.windows.net/uploads/image.jpg" /> 

Offensichtlich ein Weg sein würde speichern Sie es einfach als eine Einstellung in meinem ServiceConfiguration.Local.cscfg und ServiceConfiguration.Cloud.cscfg Dateien, aber es muss eine Möglichkeit geben, diesen Wert programmatisch zu erhalten.

enter image description here

Antwort

2

Sie sind richtig, dass Ihre Verbindungszeichenfolgen sollten in Ihrer Konfiguration gespeichert werden, und Sie können unterschiedliche Werte für die lokalen und Cloud haben. Dies ist sehr einfach zu bekommen, programmatisch:

Erstens, stellen Sie sicher, dass Sie eine Config gesetzt Verleger bei der Rollenstarteinstellung:

CloudStorageAccount.SetConfigurationSettingPublisher((configName, configSetter) => configSetter(RoleEnvironment.GetConfigurationSettingValue(configName))); 

Jetzt brauchen Sie nur Ihr Speicherkonto abrufen und die URL ziehen:

var storageAccount = CloudStorageAccount.FromConfigurationSetting("MyStorage"); 
var urlBase = storageAccount.BlobEndpoint; 

An dieser Stelle würden Sie Ihre IMG Tags von urlBase abstammen.

Verwandte Themen