发布到Azure blob存储时自动生成缩略图或预览图像
我正在将图片发布到Azure blob存储。当我存储全分辨率图像时,我想单独收集图像的缩略图(或预览)。是否可以编写一个脚本(或挂钩),当图像上载到blob存储时,图像的缩略图也会自动保存 请告知是否有办法编写此脚本发布到Azure blob存储时自动生成缩略图或预览图像,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,我正在将图片发布到Azure blob存储。当我存储全分辨率图像时,我想单独收集图像的缩略图(或预览)。是否可以编写一个脚本(或挂钩),当图像上载到blob存储时,图像的缩略图也会自动保存 请告知是否有办法编写此脚本 我不想在客户端或服务器端进行大小调整。我使用SAS使客户端能够将图像直接上载到blob存储。我可以将图像发送到我正在运行的移动服务(服务器),在那里可以调整图像大小并将其上载到blob存储。但我不想用这些调用使服务器过载 是的,这确实是可能的,您可以使用BlobTrigger部署一
我不想在客户端或服务器端进行大小调整。我使用SAS使客户端能够将图像直接上载到blob存储。我可以将图像发送到我正在运行的移动服务(服务器),在那里可以调整图像大小并将其上载到blob存储。但我不想用这些调用使服务器过载 是的,这确实是可能的,您可以使用BlobTrigger部署一个WebJob,该BlobTrigger为新创建的blob获取inputstream,并允许您将其修改为输出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进行初始检查时抛出OfMemoryExceptions,从而获得大量图片时,我们看到了一些问题,但这可能是特定于我们的设置的(我们有很多图片)。我们改为手动将消息添加到存储队列,而是让webjob使用QueueTrigger处理它。继续上载到存储,然后向发送事件。您可以实现并以辅助角色托管该代码。EventProcessor可以从存储器中获取上传的图像,调整大小,并将调整大小的图像保存回存储器。此模型的优点是可扩展,您可以随着流量的变化进行放大或缩小。太好了。我不知道网络工作。谢谢:)