我正在将图片发布到Azure blob存储。当我存储全分辨率图像时,我想维护图像的缩略图(或预览)的单独集合。是否可以编写脚本(或挂钩),在其中将图像上传到Blob存储时,图像的缩略图也会自动保存。
请告知是否有编写此脚本的方法。
我不想在客户端或服务器端进行大小调整。我正在使用SAS使客户端能够将图像直接上传到Blob存储。我可以将图像发送到我正在运行的移动服务(服务器),在这里可以调整图像的大小并上传到Blob存储。但是我不想让这些调用使服务器超载。
是的,的确是有可能的,您可以通过使用BlobTrigger部署WebJob来做到这一点,该WebJob接受新创建的Blob的输入流,并让您将其修改为输出Blob,使用出色的imageresizing.net库,代码看起来像这样:
public static void ResizeMicroImages(
[BlobTrigger("orig/{name}.{ext}")] Stream input,
[Blob("90x126/{name}.png", FileAccess.Write)] Stream output
){
ImageBuilder.Current.Build(new ImageJob(input, output, new Instructions()
{
AutoRotate = true,
Width = 90,
Height = 126,
OutputFormat = OutputFormat.Png,
}));
}
但是,在我们的设置中,我们看到很多问题,当webjob对未处理的blob进行初始检查时,webjob抛出OutOfMemoryExceptions,但这可能是特定于我们的设置的(我们有很多图片)。我们已更改为手动将消息添加到存储队列,然后由Webjob使用QueueTrigger对其进行处理。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句