Azure移动应用程序 - 上传图像并在后端处理它

时间:2015-12-12 20:54:11

标签: azure azure-storage-blobs azure-mobile-services

我正在关注this tutorial,当我6个月前尝试时,我开始工作了。现在我正在使用Azure移动应用程序创建一个新项目。这还是一样吗? 现在我有了新的要求。这是为了大学任务,我需要处理我上传的图像,将其转换为灰度,并在服务器上调整大小。 我怎样才能在Azure中执行此操作? 我知道我可以在客户端轻松处理图像,但新要求必须在服务器上处理图像。 我的数据对象如下所示:

public class Photo : EntityData
    {
        public string ContainerName { get; set; }

        public string ResourceName { get; set; }

        public string SasQueryString { get; set; }

        public string ImageUri { get; set; }

        public string Caption { get; set; }

        public string Base64Image { get; set; }
    }

我有想法将其转换为Base64字符串。但看起来我无法从azure .NET后端应用程序获取位图/图像

1 个答案:

答案 0 :(得分:4)

一种方法是让您遵循链接到的教程的C#版本,首先使用该教程中的SAS令牌机制从客户端上载原始图像。然后,您可以从客户端发出第二个请求来处理图像 - 第二个请求只是对接收图像URI的自定义API的POST。在后端,您可以使用Azure存储SDK从blob读取图像,处理它,并将新图像存储在同一位置或新图像。然后,此API将最终图像的URI返回给客户端。

第二种方法稍微复杂一点,就是使用 WebJob 进行图像处理,如this post中所述。走这条路线,您的客户端将像以前一样上传原始图像,WebJob将异步处理图像并使用新图像更新存储,并在完成时使用可能的新图像URI更新Photo DB记录。在这种方法中,在完全处理该图像并更新Photo记录之前可能会有几秒钟的延迟,因此它实际上取决于您的应用场景。这样的方法可能会更好地扩展,特别是如果您的图像处理需要一段时间。