/// <inheritdoc/> public async Task <IImageResolver> GetAsync(HttpContext context) { // Path has already been correctly parsed before here. var filePath = _mediaStore.MapPublicUrlToPath(context.Request.PathBase + context.Request.Path.Value); // Check to see if the file exists. var file = await _mediaStore.GetFileInfoAsync(filePath); if (file == null) { return(null); } var metadata = new ImageMetaData(file.LastModifiedUtc); return(new MediaFileResolver(_mediaStore, filePath, metadata)); }
/// <inheritdoc/> public async Task <IByteBuffer> ResolveImageAsync(HttpContext context, ILogger logger) { // Path has already been correctly parsed before here. var filePath = _mediaStore.MapPublicUrlToPath(context.Request.PathBase + context.Request.Path.Value); var file = await _mediaStore.GetFileInfoAsync(filePath); // Check to see if the file exists. if (file == null) { return(null); } IByteBuffer buffer; using (var stream = await _mediaStore.GetFileStreamAsync(filePath)) { // Buffer is returned to the pool in the middleware buffer = this.bufferManager.Allocate((int)stream.Length); await stream.ReadAsync(buffer.Array, 0, buffer.Length); } return(buffer); }
/// <inheritdoc/> public async Task <byte[]> ResolveImageAsync(HttpContext context, ILogger logger) { // Path has already been correctly parsed before here. var filePath = _mediaStore.MapPublicUrlToPath(context.Request.Path); var file = await _mediaStore.GetFileInfoAsync(filePath); // Check to see if the file exists. if (file == null) { return(null); } byte[] buffer; using (var stream = await _mediaStore.GetFileStreamAsync(filePath)) { // Buffer is returned to the pool in the middleware buffer = BufferDataPool.Rent((int)stream.Length); await stream.ReadAsync(buffer, 0, (int)stream.Length); } return(buffer); }