我正在将 MVC 3.0 Web 应用程序部署到 Windows Azure。我有一个操作方法,它获取用户上传的文件并将其存储在我的网络应用程序内的文件夹中。
如何向正在运行的进程授予对该文件夹的 RW 权限?我阅读了有关启动任务的内容并有了基本的了解,但我不知道,
- 如何授予权限本身,以及
- 我应该向哪个正在运行的进程(用户)授予权限。
非常感谢您的帮助。
编辑
除了下面 @David 的回答之外,我发现此链接非常有用:
https://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/
最佳答案
对于本地存储,我不会陷入向各种目录授予访问权限的困境。相反,请利用专门用于正在运行的虚拟机的存储资源。对于给定的实例大小,您可以使用从 20GB 到几乎 2TB 的本地存储(完整大小详细信息 here )。要利用此空间,您需要在项目中创建本地存储资源:
然后,在代码中获取该存储的驱动器盘符:
var storageRoot = RoleEnvironment.GetLocalResource("moreStorage").RootPath;
现在您可以自由使用该存储空间了。而且...这些都不需要任何启动任务或授予权限。
现在需要注意的是:这是每个正在运行的实例的本地存储,并且不在实例之间共享。此外,它是非持久性的 - 如果磁盘崩溃,数据就会消失。
对于持久、持久的文件存储,Blob 存储是更好的选择,因为它持久(在数据中心内进行三重复制,并异地复制到另一个数据中心)并且它位于您的角色外部实例,可从任何实例(或任何应用程序,包括您的本地应用程序)访问。
由于 Blob 存储是按容器以及容器内的 Blob 进行组织的,因此组织 Blob 相当简单(并且可以在给定的 Blob 中存储几乎所有内容,每个最多 200GB)。此外,将文件上传到 blob 或从 blob 下载到文件流或本地文件(在您分配的存储资源中,如上所示)也很简单。
关于asp.net-mvc-3 - 如何授予 Windows Azure 中文件夹的 RW 权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778178/