Implement azurite
This commit is contained in:
		| @@ -11,23 +11,31 @@ namespace Core.Blueprint.Storage.Configuration | |||||||
|     { |     { | ||||||
|         public static IServiceCollection AddBlobStorage(this IServiceCollection services, IConfiguration configuration) |         public static IServiceCollection AddBlobStorage(this IServiceCollection services, IConfiguration configuration) | ||||||
|         { |         { | ||||||
|  |  | ||||||
|             var blobConnection = configuration.GetConnectionString("BlobStorage"); |             var blobConnection = configuration.GetConnectionString("BlobStorage"); | ||||||
|  |  | ||||||
|             if (blobConnection == null || string.IsNullOrWhiteSpace(blobConnection)) |             if (string.IsNullOrWhiteSpace(blobConnection)) | ||||||
|             { |  | ||||||
|                 throw new ArgumentException("The BlobStorage configuration section is missing or empty."); |                 throw new ArgumentException("The BlobStorage configuration section is missing or empty."); | ||||||
|             } |  | ||||||
|  |  | ||||||
|             var chainedCredentials = new ChainedTokenCredential( |             var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? string.Empty; | ||||||
|                     new ManagedIdentityCredential(), |  | ||||||
|                     new SharedTokenCacheCredential(), |  | ||||||
|                     new VisualStudioCredential(), |  | ||||||
|                     new VisualStudioCodeCredential() |  | ||||||
|                 ); |  | ||||||
|             services.AddAzureClients(cfg => |             services.AddAzureClients(cfg => | ||||||
|             { |             { | ||||||
|                 cfg.AddBlobServiceClient(new Uri(blobConnection)).WithCredential(chainedCredentials); |                 if (environment == "Local") | ||||||
|  |                 { | ||||||
|  |                     cfg.AddBlobServiceClient(configuration.GetConnectionString("BlobStorage")); | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     var chainedCredentials = new ChainedTokenCredential( | ||||||
|  |                         new ManagedIdentityCredential(), | ||||||
|  |                         new SharedTokenCacheCredential(), | ||||||
|  |                         new VisualStudioCredential(), | ||||||
|  |                         new VisualStudioCodeCredential() | ||||||
|  |                     ); | ||||||
|  |  | ||||||
|  |                     cfg.AddBlobServiceClient(new Uri(blobConnection)) | ||||||
|  |                         .WithCredential(chainedCredentials); | ||||||
|  |                 } | ||||||
|             }); |             }); | ||||||
|  |  | ||||||
|             services.AddScoped<IBlobStorageProvider, BlobStorageProvider>(); |             services.AddScoped<IBlobStorageProvider, BlobStorageProvider>(); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user