首页 文章

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

提问于
浏览
8

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

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

4 回答

  • 2

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

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

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

  • 3

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

  • 11

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

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

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

  • 3

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

    在Azure中进一步查看MSDN reference on Securing Blobs & Containers .

相关问题