c# – 在Azure功能应用程序blobtrigger中设置blob的内容类型

前端之家收集整理的这篇文章主要介绍了c# – 在Azure功能应用程序blobtrigger中设置blob的内容类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试调整上传到我的容器的图像的大小,以便为我的网站创建缩略图和我的图像的各种其他版本.

上传的图像必须更正内容类型“image / jpeg”,但是当我使用下面的代码创建它们的新版本时,它变成“application / octet-stream”.

我在这里失踪了什么?

using ImageResizer;
using ImageResizer.ExtensionMethods;

public static void Run(Stream myBlob,string blobname,string blobextension,Stream outputBlob,TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Name:{blobname} \n Size: {myBlob.Length} Bytes");

    var instructions = new Instructions
    {
        Width = 570,Mode = FitMode.Crop,Scale = ScaleMode.Both,};
    ImageBuilder.Current.Build(new ImageJob(myBlob,outputBlob,instructions));
}

编辑:解决方案.

#r "Microsoft.WindowsAzure.Storage"
using ImageResizer;
using ImageResizer.ExtensionMethods;
using Microsoft.WindowsAzure.Storage.Blob;

public static void Run(Stream myBlob,CloudBlockBlob outputBlob,Scale = ScaleMode.Both
    };

    Stream stream = new MemoryStream();
    ImageBuilder.Current.Build(new ImageJob(myBlob,stream,instructions));
    stream.Seek(0,SeekOrigin.Begin);

    outputBlob.Properties.ContentType = "image/jpeg";
    outputBlob.UploadFromStream(stream);
}

解决方法

使用流输出时,函数会将您的内容类型默认为application / octet-stream.

使用ICloudBlob类型之一,它应该允许您指定blob的内容类型.

这是一个可以作为参数绑定的类型的备忘单:https://jhaleyfiles2016.blob.core.windows.net/public/Azure%20WebJobs%20SDK%20Cheat%20Sheet%202014.pdf

猜你在找的C#相关文章