我为图片上传提供了特殊的Images
无状态可靠服务。它将内容上载到Azure Blob存储并返回上传项目的URL。此外,我的项目还有ApiGateway
无状态可靠服务OwinCommunicationListener
和API用户授权终结点。我想为授权用户添加新端点,允许在存储中上传图像。
最有效和最快速的方法是什么?
我有两个建议,不知道哪个是最好的:
ApiGateway
可靠服务添加新端点,为图像无状态服务创建代理,并将到达的数据传递给它以进行上传。OwinCommunicationListener
staless Reliable Service上创建Images
。在第一种情况下,它看起来比第二种情况需要更多时间。因为我需要花一些时间在服务之间传递数据。在第二种情况下,我没有花时间进行传输,只是等到我的Azure表存储完成上传。但这种方法的主要缺点是我需要为Images
OwinCommunicationListener
配置授权,并确保它正确处理外部授权请求。
答案 0 :(得分:1)
在过去做类似的事情时 - 我已经使用了APIGateway
使用Azure Blob API,您应该能够创建自定义签名请求(URL),允许客户端直接上传到blob存储,但权限有限,例如
然后,客户端设备直接上传到Azure Blob。
这是安全性和性能方面的最佳方法。
这是一个很好的起点:
答案 1 :(得分:0)
API网关可以接受请求(图像)。然后它将调用一个可靠的服务,将图像存储在文件中(本地到集群或另一个blob存储),在Reliable Queue中添加请求(带有标识符的图像),然后将标识符(Guid)返回给API网关。
在可靠服务中有一个进程,用于检查可靠队列中的项目并通过调用无状态服务进行图像处理来处理它,将图像存储在Azure Blob存储中,并将URL返回到statefule服务。有状态服务将结果(URL)存储在Reliable Dictionary中(带有标识符)。
如果标识符在可靠字典中,则API网关可以重新查询可靠服务。应该快速,具体取决于集群中无状态服务的数量来处理图像。