![](/img/trans.png)
[英]Copy blobs from one Azure container to another using ASP.NET Core 6.0 MVC with C#
[英]Serve static files from Azure blob container in ASP.NET Core MVC
我將 web 應用程序的 static 個文件(js、css 和圖像等)存儲在一個 Azure Blob 容器中,並希望在帶有app.UseStaticFiles
的應用程序中使用這些文件。 這可能嗎?
以前我使用PhysicalFileProvider
到 map 文件夾路徑,但現在我想要 map 一個 Azure Blob 容器。
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = new PhysicalFileProvider("c:/folder"),
RequestPath = new PathString("/cdn"),
ServeUnknownFileTypes = true
});
請檢查以下參考資料:
Strathweb.AspNetCore.AzureBlobFileProvider
來實現公共 class 啟動 { 公共啟動(IConfiguration 配置){ 配置 = 配置; }
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
var blobOptions = new AzureBlobOptions
{
ConnectionString = "{CONNECTION STRING}",
DocumentContainer = "{BLOB CONTAINER NAME}"
}
var azureBlobFileProvider = new AzureBlobFileProvider(blobOptions);
services.AddSingleton(azureBlobFileProvider);
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var blobFileProvider = app.ApplicationServices.GetRequiredService<AzureBlobFileProvider>();
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = blobFileProvider,
RequestPath = "/files"
});
app.UseDirectoryBrowser(new DirectoryBrowserOptions
{
FileProvider = blobFileProvider,
RequestPath = "/files"
});
}
}
參考: GitHub -Strathweb.AspNetCore.AzureBlobFileProvider
從Azure .NET 核心 Web 應用程序和在哪里找到 Static 文件 - CodeProject
您還可以使用這些選項的組合,通過開發中的 PhysicalFileProvider 使用本地 static 文件,然后嘗試在生產中切換到 Blob 存儲。
例子:
// static files under wwwroot handled normally
app.UseStaticFiles();
// The path in the url we will manage
var staticFilesPath =
Configuration.GetSection("StaticFilesPath").Value;
if (env.IsDevelopment())
{
// The local/network folder containing static files we are mapping to
var staticFilesFolder =
Configuration.GetSection("StaticFilesFolder").Value;
if (!string.IsNullOrWhiteSpace(staticFilesFolder))
{
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(staticFilesFolder),
RequestPath = staticFilesPath
});
}
}
else
{
// map to blob storage for the path
var blobFileProvider =
app.ApplicationServices.GetRequiredService<AzureBlobFileProvider>();
if (blobFileProvider != null)
{
app.UseStaticFiles(new StaticFileOptions()
{
FileProvider = blobFileProvider,
RequestPath = staticFilesPath
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.