2

我刚刚在 Azure 云实例中实现了 Umbraco。我能够迁移我现有的 SQL 数据库以在 SQL Azure 上运行,并且一切运行良好,除了媒体文件夹中的图像和文档。

默认情况下,媒体文件夹位于 [siteroot]/Media。

有没有办法将此文件夹映射到天蓝色存储?如果不是,我认为我无法扩展我的云实例,因为图像依赖于虚拟服务器的本地存储。

编辑:赏金开始

我到目前为止是这样的:

  • 定义一个独立的 Web 角色,它将保存媒体目录和所有文件。
  • 将此文件夹映射到具有 Cloud Drive 的 Azure Blobg 存储服务,以最大程度地降低丢失数据和依赖单点存储的风险。
  • 不知何故(这是我不知道如何完成的部分)在所有正在运行的实例上保持 [siteRoot]/media 的所有文件夹与此共享驱动器同步。

我在这里看到了 Umbraco 的 Azure Accelerator 项目采用了类似的方法:http: //azureaccelerators.codeplex.com/releases

但他们自 2011 年以来没有更新该版本,我不确定它是否适用于当前版本的 Azure。

编辑2:

Umbraco 有自己的加速器,但他们已弃用它,转而使用网站而不是 Web 角色: https ://github.com/Microsoft-DPE/wa-accelerator-umbraco

此版本适用于 1.6 SDK。当前版本是 1.8 我相信...

4

4 回答 4

2

我不确定将路径映射到存储的方法,但根据您使用的 Umbraco 版本,我认为从 4.9(可能是 4.10)开始,他们引入FileSystemProviders的配置可能有助于解决您的问题。

我对它的理解是,它允许您Umbraco.Core.IO.PhysicalFileSystem用您自己的自定义实现替换默认的 Umbraco FileSystemProvider。我很确定您可以实现一个基于 Azure 的提供程序,该提供程序可以从 blob 存储中写入和读取。在源代码中,它看起来相当简单,只需实现它们的IFileSystem.

于 2013-02-26T15:57:41.497 回答
2

最终使用了 Matt Brailsford 的 Universal Media Picker 解决方案:http: //our.umbraco.org/projects/backoffice-extensions/universal-media-picker

最终的解决方案实际上绕过了 Umbraco Media Folder,直接从 Blob Storage 读取,所以我不得不重写之前渲染图像的所有宏和模板,并将它们直接指向 Blob Storage 帐户

于 2013-03-08T16:17:39.223 回答
1

不幸的是,没有办法将 NTFS 目录直接映射到 BlobStorage。

查看 Windows Azure SDK 的CloudDrive类。此功能允许您将虚拟硬盘文件(.vhd 文件)上传到 Blob 存储中,并将其作为本地驱动器装载到 Windows Azure 实例中。

您应该知道(如果您使用多个实例)只有一个云实例可以在读/写模式下挂载 VHD。其余的只有驱动器的读取权限。如果“媒体”文件夹存储您仅手动更新几次的静态内容,这没关系。但是,如果用户内容也放置在那里,您可能只希望一个实例装载 VHD 并通过网络共享授予其他实例对其的访问权限。

于 2013-02-19T08:00:22.327 回答
0

Ali Sheikh Taheri 提供的这个包解决了媒体文件夹的问题 http://our.umbraco.org/projects/backoffice-extensions/ast-azure-media-sync

于 2014-09-11T09:30:41.253 回答