带有 AzureBlobStorageImageProvider 的 ImageSharp.Web 提供 404

Posted

技术标签:

【中文标题】带有 AzureBlobStorageImageProvider 的 ImageSharp.Web 提供 404【英文标题】:ImageSharp.Web with AzureBlobStorageImageProvider giving 404's 【发布时间】:2021-11-03 22:55:34 【问题描述】:

按照示例代码,我尝试连接 ImageSharp.Web 的 AzureBlobStorageImageProvider,但所有图像请求都会导致 404。知道我的接线中缺少什么吗?

查看文档,似乎 url 约定应该是 https://localhost:44336/container-name/file-name.jpg?width=30

在我的 Startup.cs 中,我有以下代码:

public void ConfigureServices(IServiceCollection services)

    ...

    services.AddImageSharp()
        .Configure<AzureBlobStorageImageProviderOptions>(options =>
        
            // The "BlobContainers" collection allows registration of multiple containers.
            options.BlobContainers.Add(new AzureBlobContainerClientOptions
            
                ConnectionString = "REDACTED",
                ContainerName = "test-container"
            );
        )
        .AddProvider<AzureBlobStorageImageProvider>()
        .Configure<AzureBlobStorageCacheOptions>(options =>
        
            options.ConnectionString = "REDACTED";
            options.ContainerName = "cache";

            // Optionally create the cache container on startup if not already created.
            AzureBlobStorageCache.CreateIfNotExists(options, PublicAccessType.None);
        )
        .SetCache<AzureBlobStorageCache>();


public void Configure(IApplicationBuilder app, IWebHostEnvironment env)

    ...

    app.UseImageSharp();

有什么我可能缺少的想法吗?

【问题讨论】:

【参考方案1】:

看来您需要先ClearProviders(),然后再添加AzureBlobStorageImageProvider。于是代码变成了:

.ClearProviders()
.AddProvider<AzureBlobStorageImageProvider>()

【讨论】:

是的,提供程序是按顺序加载的,因此本地文件提供程序(这是一个捕获所有提供程序)需要遵循任何更具体的提供程序。

以上是关于带有 AzureBlobStorageImageProvider 的 ImageSharp.Web 提供 404的主要内容,如果未能解决你的问题,请参考以下文章

带有和不带有聚合的 sql 查询

如何翻转正面带有标签而背面带有另一个标签的视图 - 参见图片

CakePHP 如何处理带有/不带有 'id' 字段的 HABTM 表?

带有滚动的 Div 和带有绝对位置的内容

带有 RecyclerView 的 DialogFragment 比带有 Recyclerview 的 Fragment 慢

访问控制允许带有和不带有 www 的来源