我们制作了自定义图像裁剪器。sitecore:清除媒体缓存中的单个图像
这个想法是它将一个查询字符串保存在项目中的一个字段中。 然后在渲染中,我们将该查询字符串添加到图片url。
我们增加了一个getMediaStream管道。在这个管道内部,我们使用基于图像所具有的查询字符串的ImageProcessor来裁剪图像。
这一切工作...一次。
一旦图像在媒体缓存中,我们就再也没有回到getMediaStream管道中。因为当你怀孕时,你不会改变图像,但你改变了查询字符串。
我们正在寻找一种方式,当我们保存新的作物时,我们从该图像中清除媒体缓存。 我们已经尝试了以下内容:
var mediaItem = new MediaItem(imageField.MediaItem);
var media = MediaManager.GetMedia(mediaItem);
var mediaOptions = new MediaOptions();
var mediaStream = MediaManager.Cache.GetStream(media, mediaOptions);
MediaStream cachedStream = null;
MediaManager.Cache.AddStream(media, mediaOptions, mediaStream, out cachedStream);
我们得到了媒体缓存流,并尝试将其设置为零,但是这给了我们以下异常:Could not create the buffer file needed for stream sharing
任何想法,如果有可能清除单个项目从媒体缓存?
传递不同的参数通常会导致媒体生成和缓存。如果您始终传递相同的参数,则出于性能原因,预计不会再次触发管道。你是说它不是这样工作的吗? – jammykam 2014-11-04 09:07:34