限制Sitecore MediaCache文件夹大小

时间:2013-01-30 19:13:20

标签: sitecore sitecore6 sitecore-media-library

问题

默认情况下,是否有办法限制为每个Sitecore网站创建的MediaCache文件夹的大小? Sitecore 6.2文档说它不可能,但我们使用的是6.4.1。

背景

我们有一个部署到三个负载均衡的Sitecore服务器的网站。我们的Search Appliance专门使用其中一台服务器来索引我们的网站内容。由于它比普通用户更快地浏览我们的网站并消耗更多数据,因此我们网站(/ App_Data / MediaCache /网站)的MediaCache文件夹填满了该Web服务器上的磁盘。我想我们可以在该服务器上完全禁用媒体缓存,但我们希望尽可能保持每个Web服务器之间的配置相同。

思想?

1 个答案:

答案 0 :(得分:2)

MediaCache文件夹填满的问题是什么?我猜你在那台服务器上有很多媒体项和/或小(ish)磁盘大小?我还假设你没有使用Lucene作为索引,而是一个爬虫会访问每个页面并“废弃”html,就像谷歌一样?为什么爬虫要求图像,而不仅仅是HTML标记?

我不知道有什么设置,可能会有一些东西,但这意味着要查看dotPeek中的Sitecore内核。

但是,使用现在的内容,您必须对该服务器上的配置文件进行更改。

您可以将MediaCache文件夹清理任务设置为更快/更频繁地运行,但是您需要将父代理间隔设置为相同,因此它只意味着更多的Sitecore聊天。

<agent type="Sitecore.Tasks.CleanupAgent" method="Run" interval="00:01:00">
  <files hint="raw:AddCommand">
    <remove folder="/App_Data/MediaCache" pattern="*.*" maxAge="00:01:00" recursive="true" />
  </files>
</agent>

就个人而言,我只会使用patch config file来禁用该文件夹的MediaCache。但是,如果真的有那么多数据用完磁盘空间,那么请确保正确设置服务器架构,否则将会有大量网络流量。如果您在3台服务器之间有一个共享数据库,那么这可能是一个问题。

将以下内容添加到.config文件中,并将其放在索引服务器上的/ App_Config / include /文件夹中。

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
  <sitecore>
    <settings>
      <setting name="Media.CachingEnabled" value="false" />
    </settings>
  </sitecore>
</configuration>

或者对于特定网站,只需修补<site name="website">元素并添加cacheMedia="false"

如果您的索引服务器与前端服务器具有不同的URL,那么您可以考虑让索引服务器输出媒体项的完整URL,以便它们指向前端服务器。这样,图像将被缓存在这些服务器上。