我有特殊的Images
无状态可靠服务用于图像上传。它将内容上传到 Azure Blob 存储并返回已上传项目的 URL。此外,我的项目还具有 ApiGateway
无状态可靠服务,带有 OwinCommunicationListener
和 API 用户的授权端点。我想为授权用户添加一个新端点,允许上传存储中的图像。
最有效、最快的方法是什么?
我有两个建议,但不知道哪个最好:
- 向我的
ApiGateway
Reliable Service 添加新端点,为图像无状态服务创建代理,并将到达的数据传递给它进行上传。 - 使用外部端点在我的
Images
staless Reliable Service 上创建OwinCommunicationListener
。
第一种情况看起来比第二种情况花费更多时间。因为我需要花一些时间在服务之间传递数据。在第二种情况下,我不花时间进行传输,只需等待我的 Azure 表存储完成上传即可。但这种方法的主要缺点是我需要为 Images
OwinCommunicationListener
配置授权并确保它正确处理外部授权请求。
最佳答案
过去在做类似的事情时 - 我使用 APIGateway 来
- 授权请求
- 使用 GUID 存储文件的引用 在数据库中
- 返回客户端需要发布文件的 URL(见下文)
使用 Azure Blob API,您应该能够创建自定义签名请求 (URL),允许客户端直接上传到 Blob 存储,但权限有限,例如
- 仅上传文件名完全相同的文件
- 文件必须在 X 小时内上传
然后客户端设备直接上传到 Azure Blob。
就安全性和性能而言,这是最佳方法。
这是一个很好的起点:
关于azure - 用于图像上传的 Service Fabric 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38766565/