@@ -29,8 +29,23 @@ public static class AzureBlobMediaFileSystemExtensions
29
29
/// <returns>
30
30
/// The <see cref="IUmbracoBuilder" />.
31
31
/// </returns>
32
+ /// <remarks>
33
+ /// This will also configure the ImageSharp.Web middleware to use Azure Blob Storage to retrieve the original and cache the processed images.
34
+ /// </remarks>
32
35
/// <exception cref="System.ArgumentNullException">builder</exception>
33
36
public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder )
37
+ => builder . AddAzureBlobMediaFileSystem ( true ) ;
38
+
39
+ /// <summary>
40
+ /// Registers an <see cref="IAzureBlobFileSystem" /> and it's dependencies configured for media.
41
+ /// </summary>
42
+ /// <param name="builder">The <see cref="IUmbracoBuilder" />.</param>
43
+ /// <param name="useAzureBlobImageCache">If set to <c>true</c> also configures Azure Blob Storage for the image cache.</param>
44
+ /// <returns>
45
+ /// The <see cref="IUmbracoBuilder" />.
46
+ /// </returns>
47
+ /// <exception cref="System.ArgumentNullException">builder</exception>
48
+ public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder , bool useAzureBlobImageCache )
34
49
{
35
50
if ( builder == null ) throw new ArgumentNullException ( nameof ( builder ) ) ;
36
51
@@ -45,7 +60,10 @@ public static IUmbracoBuilder AddAzureBlobMediaFileSystem(this IUmbracoBuilder b
45
60
46
61
// ImageSharp image provider/cache
47
62
builder . Services . Insert ( 0 , ServiceDescriptor . Singleton < IImageProvider , AzureBlobFileSystemImageProvider > ( ) ) ;
48
- builder . Services . AddUnique < IImageCache , AzureBlobFileSystemImageCache > ( ) ;
63
+ if ( useAzureBlobImageCache )
64
+ {
65
+ builder . Services . AddUnique < IImageCache , AzureBlobFileSystemImageCache > ( ) ;
66
+ }
49
67
50
68
builder . SetMediaFileSystem ( provider => provider . GetRequiredService < IAzureBlobFileSystemProvider > ( )
51
69
. GetFileSystem ( AzureBlobFileSystemOptions . MediaFileSystemName ) ) ;
@@ -61,15 +79,33 @@ public static IUmbracoBuilder AddAzureBlobMediaFileSystem(this IUmbracoBuilder b
61
79
/// <returns>
62
80
/// The <see cref="IUmbracoBuilder" />.
63
81
/// </returns>
82
+ /// <remarks>
83
+ /// This will also configure the ImageSharp.Web middleware to use Azure Blob Storage to retrieve the original and cache the processed images.
84
+ /// </remarks>
64
85
/// <exception cref="System.ArgumentNullException">builder
65
86
/// or
66
87
/// configure</exception>
67
88
public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder , Action < AzureBlobFileSystemOptions > configure )
89
+ => builder . AddAzureBlobMediaFileSystem ( true , configure ) ;
90
+
91
+ /// <summary>
92
+ /// Registers a <see cref="IAzureBlobFileSystem" /> and it's dependencies configured for media.
93
+ /// </summary>
94
+ /// <param name="builder">The <see cref="IUmbracoBuilder" />.</param>
95
+ /// <param name="useAzureBlobImageCache">If set to <c>true</c> also configures Azure Blob Storage for the image cache.</param>
96
+ /// <param name="configure">An action used to configure the <see cref="AzureBlobFileSystemOptions" />.</param>
97
+ /// <returns>
98
+ /// The <see cref="IUmbracoBuilder" />.
99
+ /// </returns>
100
+ /// <exception cref="System.ArgumentNullException">builder
101
+ /// or
102
+ /// configure</exception>
103
+ public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder , bool useAzureBlobImageCache , Action < AzureBlobFileSystemOptions > configure )
68
104
{
69
105
if ( builder == null ) throw new ArgumentNullException ( nameof ( builder ) ) ;
70
106
if ( configure == null ) throw new ArgumentNullException ( nameof ( configure ) ) ;
71
107
72
- AddAzureBlobMediaFileSystem ( builder ) ;
108
+ AddAzureBlobMediaFileSystem ( builder , useAzureBlobImageCache ) ;
73
109
74
110
builder . Services
75
111
. AddOptions < AzureBlobFileSystemOptions > ( AzureBlobFileSystemOptions . MediaFileSystemName )
@@ -86,15 +122,33 @@ public static IUmbracoBuilder AddAzureBlobMediaFileSystem(this IUmbracoBuilder b
86
122
/// <returns>
87
123
/// The <see cref="IUmbracoBuilder" />.
88
124
/// </returns>
125
+ /// <remarks>
126
+ /// This will also configure the ImageSharp.Web middleware to use Azure Blob Storage to retrieve the original and cache the processed images.
127
+ /// </remarks>
89
128
/// <exception cref="System.ArgumentNullException">builder
90
129
/// or
91
130
/// configure</exception>
92
131
public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder , Action < AzureBlobFileSystemOptions , IServiceProvider > configure )
132
+ => builder . AddAzureBlobMediaFileSystem ( true , configure ) ;
133
+
134
+ /// <summary>
135
+ /// Registers a <see cref="IAzureBlobFileSystem" /> and it's dependencies configured for media.
136
+ /// </summary>
137
+ /// <param name="builder">The <see cref="IUmbracoBuilder" />.</param>
138
+ /// <param name="useAzureBlobImageCache">If set to <c>true</c> also configures Azure Blob Storage for the image cache.</param>
139
+ /// <param name="configure">An action used to configure the <see cref="AzureBlobFileSystemOptions" />.</param>
140
+ /// <returns>
141
+ /// The <see cref="IUmbracoBuilder" />.
142
+ /// </returns>
143
+ /// <exception cref="System.ArgumentNullException">builder
144
+ /// or
145
+ /// configure</exception>
146
+ public static IUmbracoBuilder AddAzureBlobMediaFileSystem ( this IUmbracoBuilder builder , bool useAzureBlobImageCache , Action < AzureBlobFileSystemOptions , IServiceProvider > configure )
93
147
{
94
148
if ( builder == null ) throw new ArgumentNullException ( nameof ( builder ) ) ;
95
149
if ( configure == null ) throw new ArgumentNullException ( nameof ( configure ) ) ;
96
150
97
- AddAzureBlobMediaFileSystem ( builder ) ;
151
+ AddAzureBlobMediaFileSystem ( builder , useAzureBlobImageCache ) ;
98
152
99
153
builder . Services
100
154
. AddOptions < AzureBlobFileSystemOptions > ( AzureBlobFileSystemOptions . MediaFileSystemName )
0 commit comments