1

在我的网站,用户可以上传两种文件:Azure的斑点文件存储策略

  • 文档(DOC,PDF,JPG,ZIP)
  • 头像图片(JPG格式)

我开始创建一个私人blob容器。 因此,我可以检查请求文件的用户是否有权下载它

问题出现的时候,在网站公共部分的页面中,我必须显示所有用户的头像图片。 在这种情况下,ther不需要检查任何内容,但是头像图像保存在私人文档的相同blob容器中。

所以,第一个解决方案是创建一个简单的动作,接收图片的文件名,然后从blob中获取它并推送到流出。 但是这样做我给恶意用户使用这个脚本请求保留文档的能力。(简单地询问文档文件名而不是头像图像文件)

什么是最佳解决方案? 创建两个不同的blob容器(一个私人和一个公共)? 其他解决方案?

编辑

使用元数据标记公开的文件?

回答

4

我会建议创建两个不同的容器。不仅如此,我还建议你不要只是推送头像到流中,而是将完整的blob网址发布到源代码中。因此,您将可以稍后使用CDN!使用“透明代理”操作方法使公共blob无意义。 至于私人blob - 我认为你的方法很好,但在服务blob内容之前你必须执行一些安全检查。

+0

是的,我忘记写私人blob的访问是由检查权限的脚本调解 –

+0

Still。我建议将公共文件放在公共容器中,甚至设置/启用CDN,并将公共文件CDN-ed。 – astaykov