Skip to content

Commit 9c141d0

Browse files
Also add additional constructor on image cache
1 parent a1018db commit 9c141d0

File tree

1 file changed

+15
-14
lines changed

1 file changed

+15
-14
lines changed

src/Umbraco.StorageProviders.AzureBlob/Imaging/AzureBlobFileSystemImageCache.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ namespace Umbraco.StorageProviders.AzureBlob.Imaging
1717
public class AzureBlobFileSystemImageCache : IImageCache
1818
{
1919
private const string _cachePath = "cache/";
20-
private readonly string _name;
2120
private BlobContainerClient _container;
2221

2322
/// <summary>
@@ -33,19 +32,28 @@ public AzureBlobFileSystemImageCache(IOptionsMonitor<AzureBlobFileSystemOptions>
3332
/// </summary>
3433
/// <param name="name">The name.</param>
3534
/// <param name="options">The options.</param>
36-
/// <exception cref="System.ArgumentNullException">options
37-
/// or
38-
/// name</exception>
3935
protected AzureBlobFileSystemImageCache(string name, IOptionsMonitor<AzureBlobFileSystemOptions> options)
4036
{
4137
if (options == null) throw new ArgumentNullException(nameof(options));
4238

43-
_name = name ?? throw new ArgumentNullException(nameof(name));
44-
4539
var fileSystemOptions = options.Get(name);
4640
_container = new BlobContainerClient(fileSystemOptions.ConnectionString, fileSystemOptions.ContainerName);
4741

48-
options.OnChange(OptionsOnChange);
42+
options.OnChange((options, changedName) =>
43+
{
44+
if (changedName != name) return;
45+
46+
_container = new BlobContainerClient(options.ConnectionString, options.ContainerName);
47+
});
48+
}
49+
50+
/// <summary>
51+
/// Initializes a new instance of the <see cref="AzureBlobFileSystemImageCache" /> class.
52+
/// </summary>
53+
/// <param name="blobContainerClient">The blob container client.</param>
54+
public AzureBlobFileSystemImageCache(BlobContainerClient blobContainerClient)
55+
{
56+
_container = blobContainerClient ?? throw new ArgumentNullException(nameof(blobContainerClient));
4957
}
5058

5159
/// <inheritdoc />
@@ -68,12 +76,5 @@ public async Task SetAsync(string key, Stream stream, ImageCacheMetadata metadat
6876

6977
await blob.UploadAsync(stream, metadata: metadata.ToDictionary()).ConfigureAwait(false);
7078
}
71-
72-
private void OptionsOnChange(AzureBlobFileSystemOptions options, string name)
73-
{
74-
if (name != _name) return;
75-
76-
_container = new BlobContainerClient(options.ConnectionString, options.ContainerName);
77-
}
7879
}
7980
}

0 commit comments

Comments
 (0)