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

相关文章

在项目中使用SharpZipLib压缩文件夹的时候,遇到如果目录较深,则压缩包中的文件夹同样比较深的问题。比...
项目需要,几十万张照片需要计算出每个照片的特征值(调用C++编写的DLL)。 业务流程:选择照片...
var array = new byte[4]; var i = Encoding.UTF8.GetBytes(100.ToString("x2"));//...
其实很简单,因为Combox的Item是一个K/V的object,那么就可以把它的items转换成IEnumerable<Dic...
把.net4.6安装包打包进安装程序。 关键脚本如下: 头部引用字符串对比库 !include "WordFunc....
项目需求(Winform)可以批量打印某个模板,经过百度和摸索,使用iTextSharp+ZXing.NetʿreeSp...