在 ASP.Net 5 中配置 Azure Blob 访问

der*_*rek 3 c# azure azure-storage asp.net-core

我正在 Visual Studio 2015 中创建一个 ASP.Net 5 WebAPI 应用程序,我需要使用 Azure Blob。

要使用 Azure blob,从官方文档:https : //azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-blobs/ 中,您需要放入一个键值对<appSettings />在这样的app.configweb.config文件中:

<appSettings>
    <add key="StorageConnectionString" value="DefaultEndpointsProtocol=https;AccountName=account-name;AccountKey=account-key" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

但问题是,如果您使用的是 ASP.Net 5,则没有名为app.configweb.config.

所以如果我使用 ASP.Net 5,我应该把StorageConnectionString?

Bru*_*hen 6

ASP.NET Core 提供了多种不同的配置选项。应用程序配置数据可能来自文件(例如 JSON、XML 等)、环境变量、内存中的集合等。

它与选项模型一起使用,以便您可以将强类型设置注入到您的应用程序中。您还可以创建自定义配置提供程序,这可以为您带来更大的灵活性和可扩展性。

根据您的要求,您可以按照以下步骤来实现您的目的:

在 appsetting.json 中创建一个名为 AzureStorageConfig 的部分:

"AzureStorageConfig": {
  "AccountName": "<yourStorageAccountName>",
  "AccountKey": "<yourStorageAccountKey>"
}
Run Code Online (Sandbox Code Playgroud)

创建一个名为 AzureStorageConfig 的类,如下所示:

public class AzureStorageConfig
{
    public string AccountName { get; set; }
    public string AccountKey { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

然后像这样在 Startup.cs 中配置服务:

public void ConfigureServices(IServiceCollection services)
{   
    // Add framework services.
    services.AddMvc();
    // Setup options with DI
    services.AddOptions();
    services.Configure<AzureStorageConfig>(Configuration.GetSection("AzureStorageConfig"));
}
Run Code Online (Sandbox Code Playgroud)

然后通过这样的控制器访问它:

private AzureStorageConfig _storageConfig;
public HomeController(IOptions<AzureStorageConfig> config)
{
    _storageConfig = config.Value;
}
Run Code Online (Sandbox Code Playgroud)

更多细节,你可以参考这个教程