我的项目需求是使用Azure文件共享。当前的总体架构是:
- 静态Web应用- Vue.JS应用程序,用于用户管理他们的个人文件 文件共享
- - hosts用户文件
问题:
- 为Azure文件共享创建SAS密钥时,不能限制用户对特定目录的访问。您可以对文件或整个文件共享进行范围访问,但不能访问文件夹。只写权限允许用户在文件共享的任何地方写。
- FileREST不用于在网站上显示静态内容,例如图片/视频。
潜在解决方案(1)-中间件服务:
- 在Web应用程序和文件共享之间引入一个服务来管理用户权限和文件访问。
当用户想要在文件共享中访问他们的文件夹时,他们首先点击service以获得他们的访问密钥/令牌。当用户需要读取/上传文件时,用户需要包含访问密钥/令牌。
潜在解决方案(2)- Blob存储到Azure文件共享同步
- 引入Azure Blob Storage,每个客户端都有自己的容器 每个客户端只能访问他们特定的容器。
- Azure功能在文件上传/删除/修改时触发,并将更改复制到文件共享。
问题
这些方法中哪一个似乎是正确的?有更好的方法吗?
如果您打算实现的话,第二个是最简单的。因为每个客户都可以有自己单独的容器。这也给每个客户带来了好处,他们之间没有文件名冲突,如果一个容器中断,它不会面对其他用户的挑战,在容器级别,你也可以为这些用户定义作用域。
引入一个服务,位于Web应用程序和文件共享之间进行管理用户权限和文件访问。
涉及两个服务之间的代理/服务,将导致处理缓慢。