云服务 - 两个网络角色共享文件系统

Cloud Services - Two web roles sharing file system

我有一个非常特殊的要求是:

两个 Web 角色正在访问本地共享文件位置。

我知道 "Local Storage" 角色设置,但这些设置只能在每个角色范围内访问。

有谁知道完成此操作的另一种选择?

--------编辑--------

按照建议,我将在这里更清楚地解释我要实现的目标。

我正在实施 Only Office,这是一个 Office 文件的 Web 编辑器。他们的产品需要在文件系统上保存一个文件才能在编辑器上打开。

我不想将他们的 ASP.NET MVC 开源项目与我的代码混在一起,所以这就是为什么我想将他们的网站部署为一个单独的 webrole。

--------结束编辑------------

谢谢

这里基本上有 2 个选项,都在评论中提到了。您可以使用 BLOB 存储,也可以使用使用 Azure 文件的 SMB 共享,我相信它仍处于预览阶段。我们已经使用 Azure 文件在几个 linux 盒子上安装了 SMB 共享。我们注意到的一件事是它不是特别快。它还建立在 blob 存储之上。这是 Azure 文件 https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/.

的 link

如果选择使用blob存储,则需要考虑并发性。 https://azure.microsoft.com/en-us/blog/managing-concurrency-in-microsoft-azure-storage-2/

在你的问题中,你声明(我强调):

I'm implementing Only Office which is a web editor for office files. Their product requires to have a file saved on the file system to be opened on the editor.

如果 Only Office 的 要求是在编辑文档时使用 临时 文件存储,您可以在 Cloud Service Web Role 中解决这个问题。这是假设您的用户不会因为温度过高而生气。工作文档在角色重新启动期间 'lost'。

Web(和 Worker)角色是非持久的,如果它们需要修补底层主机,Azure Service Fabric 可能会弹回它们,或者它们可能会因故障而崩溃(这通常是成对部署它们的原因- 容错等)如果您在 Web 角色上将某些内容保存到文件系统,则无法保证角色退回时它会在那里。

如果您需要持久性,则需要实施一些基于 Azure Blob Storage and possibly something based on Blob Leases 的东西。但是我想 Only Office 没有针对 Azure 的实现....

否则,您可以在 Azure Web App Service 上尝试 运行ning,但我想您会遇到同样的问题。支持存储,并且需要在 Blob 存储上实现一些东西。

因此,最后,如果您想要完全控制和类似于 运行 内部部署的东西,请查看使用 IaaS 虚拟机,您可以在其中使用所有文件系统作为你请。

==更新==

看看 Only Office 网站,有一个 SaaS 产品 Only Office SaaS Hosting 一年 运行 可能比我写这个答案所花的时间还便宜!

否则,如果您查看 Only Office Document Server 的要求, 不可能 您将 运行 在 Web 角色上做到这一点。使用 Azure IaaS VM。

我建议使用 Azure 文件服务,您可以使用类似 URI 的共享。

看看这个: https://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-files/