.Net 5.0项目中AddAzureClients注册的BlobServiceClient如何配置Http代理
解决方案
要为BlobServiceClient配置代理,直接在注册服务时通过WithOptions方法自定义传输层的Http处理器即可,完整配置代码如下:
public void ConfigureServices(IServiceCollection services) { services.AddAzureClients(builder => { // 添加存储账户客户端,同时配置代理 builder.AddBlobServiceClient(storageUrl) .WithOptions(new BlobClientOptions { Transport = new HttpClientTransport(new HttpClientHandler { Proxy = new WebProxy("https://sample.proxy.url.com"), // 按需配置是否绕过本地地址代理 BypassProxyOnLocal = true // 若代理需要身份验证,使用下方配置 /* Proxy = new WebProxy("https://sample.proxy.url.com") { Credentials = new NetworkCredential("代理账号", "代理密码") } */ }) }); // 使用默认环境凭证 builder.UseCredential(new EnvironmentCredential()); }); services.AddControllers(); }
要点说明
- 该配置方式适配
Azure.Storage.Blobs v12+版本,.Net 5及以上版本都可以直接使用,无需额外安装依赖包。 - 如果你需要给所有注册的Azure客户端(比如队列客户端、表存储客户端等)统一配置代理,可以直接配置全局默认选项,不用逐个单独配置:
services.AddAzureClients(builder => { // 全局配置所有Azure客户端的代理 builder.ConfigureDefaults(options => { options.Transport = new HttpClientTransport(new HttpClientHandler { Proxy = new WebProxy("https://sample.proxy.url.com") }); }); builder.AddBlobServiceClient(storageUrl); builder.UseCredential(new EnvironmentCredential()); });
内容的提问来源于stack exchange,提问作者nen
相关产品推荐
相关产品推荐

