在Azure中,我应该在哪里存储需要由Worker角色访问的物理文件?

时间:2012-04-16 10:43:10

标签: azure azure-storage azure-worker-roles azure-web-roles

在Azure中,我应该在哪里存储需要由辅助角色访问的物理文件?

在我的情况下,我通常会将这些特定文件存储在我的Web角色的App_Data文件夹中,但我不相信Worker Roles可以访问该文件夹。

4 个答案:

答案 0 :(得分:11)

如果将文件放在Windows Azure存储中(blob适用于文件存储),则任何角色实例都可以访问它们,无论是在Web角色还是工作角色中。此外,Blob存储持久意味着在数据中心内进行三重复制(并且地理复制到另一个数据中心)。

关于无法访问Web角色实例(或其他工作者角色的实例)中的文件夹的工作者角色实例,您是对的。实际上,同一个角色的多个实例无法访问彼此的文件系统(只需记住一个角色只是Windows 2012 Server,并且该角色的每个实例都在其自己的VM中运行,并具有自己的本地磁盘)。

编辑2014年7月5日这个答案现在有点旧了。 Azure现在提供文件服务,提供由blob存储支持的SMB共享。对于必须使用文件系统且不能更改为直接读取/写入blob的遗留应用程序,这往往更容易使用。可以找到更多信息here

答案 1 :(得分:3)

由于数据不会保留在实例上,因此您需要分布式存储,您可以在其中存储文件(和其他数据)。这可以通过使用Windows Azure Blob存储来完成(与在SQL Azure中存储文件相比,这非常便宜)。

答案 2 :(得分:3)

Azure存储是一个不错的选择。您还可以查看使用本地存储资源:

http://msdn.microsoft.com/en-us/library/windowsazure/ee758708.aspx

  

本地存储资源是虚拟机的文件系统中的保留目录,其中正在运行角色的实例。实例中运行的代码可以在需要写入或读取文件时写入本地存储资源。例如,本地存储资源可用于缓存在Windows Azure中运行服务时可能需要再次访问的数据。

答案 3 :(得分:2)

如果您存储的数据是敏感的 - 请确保使用某些protection scheme on your blob container并且不要将blob数据存储为可供任何人查看的公共可访问链接。您最好的选择是使用SaS(Shared Access Signature)安全地访问存储的Azure blob数据。如果数据不敏感 - 这不是必需的。

在Azure中查看更多MSDN reference on Securing Blobs & Containers