【问题标题】:Auto generation of thumbnails or preview of images when posting to Azure blob storage发布到 Azure Blob 存储时自动生成缩略图或预览图像
【发布时间】:2015-07-28 03:20:27
【问题描述】:

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

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

我不想在客户端或服务器端调整大小。我正在使用 SAS 使客户端能够直接将图像上传到 blob 存储。我可以将图像发送到我正在运行的移动服务(服务器),图像可以在其中调整大小并上传到 blob 存储。但我不想用这些调用使服务器超载。

【问题讨论】:

    标签: azure azure-storage azure-blob-storage


    【解决方案1】:

    是的,这确实是可能的,您可以通过使用 BlobTrigger 部署 WebJob 来做到这一点,该 BlobTrigger 将输入流用于新创建的 blob,并让您将其修改为输出 blob,使用出色的图像大小调整代码看起来像这样。网络库:

    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 进行初始检查时抛出 OutOfMemoryExceptions,但这可能特定于我们的设置(我们有很多图片)。我们改为手动将消息添加到存储队列,而是让 webjob 使用 QueueTrigger 处理它。

    【讨论】:

    • 太好了。不知道WebJobs。谢谢:)
    【解决方案2】:

    继续上传到存储,然后发送事件到EventHub。您可以实现EventProcessor 并将该代码托管在工作者角色中。 EventProcessor 可以从存储中获取上传的图像,调整大小,并将调整大小的图像保存回存储。该模型的优势在于它具有可扩展性,您可以随着流量的变化而扩大或缩小规模。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-22
      • 2018-09-04
      • 2011-12-13
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多