|
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
using System.Globalization;
using System.Text;
namespace Aspire.Hosting.Azure;
internal static class AzureStorageEmulatorConnectionString
{
// Use defaults from https://learn.microsoft.com/azure/storage/common/storage-configure-connection-string#connect-to-the-emulator-account-using-the-shortcut
private const string ConnectionStringHeader = "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;";
private const string BlobEndpointTemplate = "BlobEndpoint=http://127.0.0.1:{0}/devstoreaccount1;";
private const string QueueEndpointTemplate = "QueueEndpoint=http://127.0.0.1:{0}/devstoreaccount1;";
private const string TableEndpointTemplate = "TableEndpoint=http://127.0.0.1:{0}/devstoreaccount1;";
public static string Create(int? blobPort = null, int? queuePort = null, int? tablePort = null)
{
var builder = new StringBuilder(ConnectionStringHeader);
if (blobPort is not null)
{
builder.AppendFormat(CultureInfo.InvariantCulture, BlobEndpointTemplate, blobPort);
}
if (queuePort is not null)
{
builder.AppendFormat(CultureInfo.InvariantCulture, QueueEndpointTemplate, queuePort);
}
if (tablePort is not null)
{
builder.AppendFormat(CultureInfo.InvariantCulture, TableEndpointTemplate, tablePort);
}
return builder.ToString();
}
}
|