代码之家  ›  专栏  ›  技术社区  ›  amhed

Azure云实例上的共享Umbraco媒体文件夹

  •  2
  • amhed  · 技术社区  · 13 年前

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

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

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

    编辑:赏金已启动

    到目前为止,我所拥有的是:

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

    我在Umbraco的Azure加速器项目中看到了类似的方法: http://azureaccelerators.codeplex.com/releases

    但他们自2011年以来就没有更新过版本,我不确定它是否能与当前版本的Azure配合使用。

    编辑2:

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

    此版本适用于1.6 SDK。目前的版本是1.8,我相信。。。

    4 回复  |  直到 13 年前
        1
  •  2
  •   Digbyswift    13 年前

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

    我对它的理解是,它允许您替换默认的Umbraco FileSystemProvider, Umbraco.Core.IO.PhysicalFileSystem 使用您自己的自定义实现。我非常确信您可以实现一个基于Azure的提供程序,它可以从blob存储中进行写入和读取。在来源中,它看起来 相当地 简单明了,这是一个实施他们 IFileSystem .

        2
  •  2
  •   amhed    13 年前

    最终使用了Matt Brailsford的通用媒体选择器解决方案: http://our.umbraco.org/projects/backoffice-extensions/universal-media-picker

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

        3
  •  1
  •   Nico    13 年前

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

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

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

        4
  •  0
  •   Ricardo stands with Ukraine    11 年前

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