O Azure C # WebJob usando o ImageResizer não está configurando corretamente o tipo de conteúdo

Estou trabalhando em um WebJob do Azure para redimensionar imagens recém-carregadas. O redimensionamento funciona, mas as imagens recém-criadas não têm seu tipo de conteúdo definido corretamente no Armazenamento de Blob. Em vez disso, eles são listados application / octet-stream. Aqui, o código que manipula o redimensionamento:

public static void ResizeImagesTask(
    [BlobTrigger("input/{name}.{ext}")] Stream inputBlob,
    string name,
    string ext,
    IBinder binder)
{
    int[] sizes = { 800, 500, 250 };
    var inputBytes = inputBlob.CopyToBytes();
    foreach (var width in sizes)
    {
        var input = new MemoryStream(inputBytes);
        var output = binder.Bind<Stream>(new BlobAttribute($"output/{name}-w{width}.{ext}", FileAccess.Write));

        ResizeImage(input, output, width);
    }
}

private static void ResizeImage(Stream input, Stream output, int width)
{
    var instructions = new Instructions
    {
        Width = width,
        Mode = FitMode.Carve,
        Scale = ScaleMode.Both
    };
    ImageBuilder.Current.Build(new ImageJob(input, output, instructions));
}

Minha pergunta é onde e como eu definiria o tipo de conteúdo? É algo que tenho que fazer manualmente ou há um erro no modo como estou usando a biblioteca, impedindo-a de atribuir o mesmo tipo de conteúdo que o original (o comportamento que a biblioteca diz que deve exibir)?

Obrigado!

ATUALIZAÇÃO FINAL

Obrigado a Thomas por sua ajuda para chegar à solução final, aqui está!

public class Functions
{
    // output blolb sizes
    private static readonly int[] Sizes = { 800, 500, 250 };

    public static void ResizeImagesTask(
        [QueueTrigger("assetimage")] AssetImage asset,
        string container,
        string name,
        string ext,
        [Blob("{container}/{name}_master.{ext}", FileAccess.Read)] Stream blobStream,
        [Blob("{container}")] CloudBlobContainer cloudContainer)
    {

        // Get the mime type to set the content type
        var mimeType = MimeMapping.GetMimeMapping($"{name}_master.{ext}");

        foreach (var width in Sizes)
        {
            // Set the position of the input stream to the beginning.
            blobStream.Seek(0, SeekOrigin.Begin);

            // Get the output stream
            var outputStream = new MemoryStream();
            ResizeImage(blobStream, outputStream, width);

            // Get the blob reference
            var blob = cloudContainer.GetBlockBlobReference($"{name}_{width}.{ext}");

            // Set the position of the output stream to the beginning.
            outputStream.Seek(0, SeekOrigin.Begin);
            blob.UploadFromStream(outputStream);

            // Update the content type =>  don't know if required
            blob.Properties.ContentType = mimeType;
            blob.SetProperties();
        }
    }

    private static void ResizeImage(Stream input, Stream output, int width)
    {
        var instructions = new Instructions
        {
            Width = width,
            Mode = FitMode.Carve,
            Scale = ScaleMode.Both
        };
        var imageJob = new ImageJob(input, output, instructions);

        // Do not dispose the source object
        imageJob.DisposeSourceObject = false;
        imageJob.Build();
    }

    public static void PoisonErrorHandler([QueueTrigger("webjobs-blogtrigger-poison")] BlobTriggerPosionMessage message, TextWriter log)
    {
        log.Write("This blob couldn't be processed by the original function: " + message.BlobName);
    }
}

public class AssetImage
{
    public string Container { get; set; }

    public string Name { get; set; }

    public string Ext { get; set; }
}

public class BlobTriggerPosionMessage
{
    public string FunctionId { get; set; }
    public string BlobType { get; set; }
    public string ContainerName { get; set; }
    public string BlobName { get; set; }
    public string ETag { get; set; }
}

questionAnswers(1)

yourAnswerToTheQuestion