Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
发布到Azure blob存储时自动生成缩略图或预览图像_Azure_Azure Storage_Azure Storage Blobs - Fatal编程技术网

发布到Azure blob存储时自动生成缩略图或预览图像

发布到Azure blob存储时自动生成缩略图或预览图像,azure,azure-storage,azure-storage-blobs,Azure,Azure Storage,Azure Storage Blobs,我正在将图片发布到Azure blob存储。当我存储全分辨率图像时,我想单独收集图像的缩略图(或预览)。是否可以编写一个脚本(或挂钩),当图像上载到blob存储时,图像的缩略图也会自动保存 请告知是否有办法编写此脚本 我不想在客户端或服务器端进行大小调整。我使用SAS使客户端能够将图像直接上载到blob存储。我可以将图像发送到我正在运行的移动服务(服务器),在那里可以调整图像大小并将其上载到blob存储。但我不想用这些调用使服务器过载 是的,这确实是可能的,您可以使用BlobTrigger部署一

我正在将图片发布到Azure blob存储。当我存储全分辨率图像时,我想单独收集图像的缩略图(或预览)。是否可以编写一个脚本(或挂钩),当图像上载到blob存储时,图像的缩略图也会自动保存

请告知是否有办法编写此脚本


我不想在客户端或服务器端进行大小调整。我使用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可以从存储器中获取上传的图像,调整大小,并将调整大小的图像保存回存储器。此模型的优点是可扩展,您可以随着流量的变化进行放大或缩小。

太好了。我不知道网络工作。谢谢:)