【问题标题】:Temporary storage for Azure WebSitesAzure 网站的临时存储
【发布时间】:2015-03-11 09:29:59
【问题描述】:

我想缓存一些裁剪的图像并提供它们,而无需在 Azure 网站中再次计算它们。当我使用 Azure VM 时,我只是将它们存储在 D 驱动器(临时驱动器),但我现在不知道将它们存储在哪里。

我可以使用Path.GetTempPath,但我不确定这是否是最好的方法。

当我从 Azure 网站提供服务时,您能否建议我将临时文件存储在哪里?

【问题讨论】:

    标签: caching azure azure-storage azure-web-app-service temporary


    【解决方案1】:

    Azure 网站还附带一个 Temp 文件夹。路径在环境变量 %TEMP%

    中定义

    【讨论】:

    • 这与Path.GetTempPath 相同。我不知道当它随着时间变大时它会有什么反应。当它增长并填满 90% 的存储空间时会发生什么?它会不时被回收一次,还是会一直留在那里直到被删除?
    • @MenelaosVergis 临时文件夹是您正在使用的 VM 上的物理文件夹。如果我没记错的话,您最多可以在其中存储 50GB 的数据,一旦填满,您将摆脱存储异常。不过,它是有代价的。由于临时文件夹位于同一台物理机器上,如果机器出现故障或您的站点出于任何原因移动到另一台机器,您就会丢失临时文件夹中的所有内容。您应该接受您可以随时丢失该文件夹的内容(例如,如果您扩大或缩小规模,您将更换机器并丢失该数据)
    • 你是对的 Zain,你也应该知道这个 Temp 文件夹可以从运行在同一个虚拟机上的所有站点访问,这可能会导致安全问题。
    • @MenelaosVergis 不正确,您可以自己测试一下。在同一个虚拟主机计划中创建两个站点。将其更改为基本模式并将其缩放为仅一个实例。这两个站点现在都将在同一个虚拟机上运行。将一些文件添加到一个站点的临时文件夹中,看看您是否可以从另一个站点查看它们。您将无法看到它们
    【解决方案2】:

    您可以将图像存储在应用程序根目录的 App_Data 文件夹中,也可以使用 Azure CDN 进行缓存。

    【讨论】:

    • 顺便说一句,我有类似的项目只是为了动态调整图像大小,也许你会感兴趣 (github.com/T-Alex/ImageProxy),我使用 CDN 进行缓存,因为它便宜且耐用。
    【解决方案3】:

    您可以将处理后的内容存储在 Azure Blob 存储中并从那里提供内容。

    【讨论】:

    • Blob 存储是永久存储,我需要一些临时的东西,以便它可以不时回收一次,而不必自己回收。
    • 您可以每天将它们存储在一个新容器中,然后“自己回收”将只是删除昨天的容器。如果您想要完全自动过期,那么您需要一个缓存解决方案(例如使用自动密钥过期的 azure redis 缓存,或者 CDN 负责处理过期内容的 CDN)。在使用 Azure VM 时,您如何管理过期?
    • 我将在 Azure Blob 存储中针对此方案实施过期缓存机制。这是存储图像的最安全和最具成本效益的方式
    【解决方案4】:

    如果您真正想要的是缓存,您还可以考虑使用 Azure Redis 缓存。

    【讨论】:

    • 这是用于裁剪图像的,Redis 缓存中大存储的价格将难以承受,无论如何谢谢
    【解决方案5】:

    您可以使用 Path.GetTempPath() 和 Path.GetTempFileName() 函数作为临时文件名,但是在空间方面您是有限的,所以如果您为每个请求保存 10K 并期望 100,000 个请求每台服务器一次,也许 blob 存储更好。

    以下示例演示了如何在 azure 中保存临时文件,包括 Path 和 Bolb。

    文档在这里:https://code.msdn.microsoft.com/How-to-store-temp-files-in-d33bbb10
    代码点这里:https://github.com/Azure-Samples/storage-blob-dotnet-store-temp-files/archive/master.zip

    【讨论】:

      猜你喜欢
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-27
      • 1970-01-01
      • 1970-01-01
      • 2016-06-21
      • 2012-12-14
      相关资源
      最近更新 更多