Skip to content

Commit bea1d65

Browse files
Simplify middleware workflow.
1 parent fc1721b commit bea1d65

File tree

3 files changed

+123
-150
lines changed

3 files changed

+123
-150
lines changed

src/ImageSharp.Web.Providers.Azure/Providers/AzureBlobStorageImageProvider.cs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
using Microsoft.AspNetCore.Http;
99
using Microsoft.AspNetCore.Http.Extensions;
1010
using Microsoft.Extensions.Options;
11-
using Microsoft.IO;
1211
using SixLabors.ImageSharp.Web.Resolvers;
1312
using SixLabors.ImageSharp.Web.Resolvers.Azure;
1413

@@ -35,12 +34,6 @@ private readonly Dictionary<string, BlobContainerClient> containers
3534
/// </summary>
3635
private readonly AzureBlobStorageImageProviderOptions storageOptions;
3736

38-
/// <summary>
39-
/// The recyclable memorystream manager used for managing pooled stream
40-
/// buffers independently from image buffer pooling.
41-
/// </summary>
42-
private readonly RecyclableMemoryStreamManager memoryStreamManager;
43-
4437
/// <summary>
4538
/// Contains various helper methods based on the current configuration.
4639
/// </summary>
@@ -55,21 +48,14 @@ private readonly Dictionary<string, BlobContainerClient> containers
5548
/// Initializes a new instance of the <see cref="AzureBlobStorageImageProvider"/> class.
5649
/// </summary>
5750
/// <param name="storageOptions">The blob storage options.</param>
58-
/// <param name="memoryStreamManager">
59-
/// The recyclable memorystream manager used for managing pooled stream
60-
/// buffers independently from image buffer pooling.
61-
/// </param>
6251
/// <param name="formatUtilities">Contains various format helper methods based on the current configuration.</param>
6352
public AzureBlobStorageImageProvider(
6453
IOptions<AzureBlobStorageImageProviderOptions> storageOptions,
65-
RecyclableMemoryStreamManager memoryStreamManager,
6654
FormatUtilities formatUtilities)
6755
{
6856
Guard.NotNull(storageOptions, nameof(storageOptions));
69-
Guard.NotNull(memoryStreamManager, nameof(memoryStreamManager));
7057

7158
this.storageOptions = storageOptions.Value;
72-
this.memoryStreamManager = memoryStreamManager;
7359
this.formatUtilities = formatUtilities;
7460

7561
foreach (AzureBlobContainerClientOptions container in this.storageOptions.BlobContainers)
@@ -136,7 +122,7 @@ public async Task<IImageResolver> GetAsync(HttpContext context)
136122
return null;
137123
}
138124

139-
return new AzureBlobStorageImageResolver(blob, this.memoryStreamManager);
125+
return new AzureBlobStorageImageResolver(blob);
140126
}
141127

142128
/// <inheritdoc/>

src/ImageSharp.Web.Providers.Azure/Resolvers/AzureBlobStorageImageResolver.cs

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
using Azure;
88
using Azure.Storage.Blobs;
99
using Azure.Storage.Blobs.Models;
10-
using Microsoft.IO;
1110

1211
namespace SixLabors.ImageSharp.Web.Resolvers.Azure
1312
{
@@ -16,22 +15,13 @@ namespace SixLabors.ImageSharp.Web.Resolvers.Azure
1615
/// </summary>
1716
public class AzureBlobStorageImageResolver : IImageResolver
1817
{
19-
private readonly RecyclableMemoryStreamManager memoryStreamManager;
2018
private readonly BlobClient blob;
2119

2220
/// <summary>
2321
/// Initializes a new instance of the <see cref="AzureBlobStorageImageResolver"/> class.
2422
/// </summary>
2523
/// <param name="blob">The Azure blob.</param>
26-
/// <param name="memoryStreamManager">
27-
/// The recyclable memorystream manager used for managing pooled stream
28-
/// buffers independently from image buffer pooling.
29-
/// </param>
30-
public AzureBlobStorageImageResolver(BlobClient blob, RecyclableMemoryStreamManager memoryStreamManager)
31-
{
32-
this.blob = blob;
33-
this.memoryStreamManager = memoryStreamManager;
34-
}
24+
public AzureBlobStorageImageResolver(BlobClient blob) => this.blob = blob;
3525

3626
/// <inheritdoc/>
3727
public async Task<ImageMetadata> GetMetaDataAsync()
@@ -42,16 +32,6 @@ public async Task<ImageMetadata> GetMetaDataAsync()
4232

4333
/// <inheritdoc/>
4434
public async Task<Stream> OpenReadAsync()
45-
{
46-
// Copy to a MemoryStream first because RetriableStreamImpl
47-
// doesn't support Position.
48-
Stream blobStream = (await this.blob.DownloadAsync()).Value.Content;
49-
var memoryStream = new RecyclableMemoryStream(this.memoryStreamManager);
50-
51-
await blobStream.CopyToAsync(memoryStream);
52-
memoryStream.Seek(0, SeekOrigin.Begin);
53-
54-
return memoryStream;
55-
}
35+
=> (await this.blob.DownloadAsync()).Value.Content;
5636
}
5737
}

0 commit comments

Comments
 (0)